mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 00:50:40 +00:00
322 lines
16 KiB
XML
322 lines
16 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
|
|
|
<Type Name="PyDictKeyEntry">
|
|
<DisplayString>{*me_key} = {*me_value}</DisplayString>
|
|
|
|
<Expand>
|
|
<ExpandedItem>me_value</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="_object">
|
|
<!-- TODO: Set, Slice, DateTime (and sub types), Complex, Range, OrderedDict,
|
|
Exception, Traceback, Frame, Generator, Iterator, Method, InstanceMethod -->
|
|
|
|
<!-- None -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!_PyNone_Type">
|
|
None
|
|
</DisplayString>
|
|
|
|
<!-- Bools -->
|
|
<DisplayString Condition="(python36.dll!_longobject *)this == &python36.dll!_Py_TrueStruct">True</DisplayString>
|
|
<DisplayString Condition="(python36.dll!_longobject *)this == &python36.dll!_Py_FalseStruct">False</DisplayString>
|
|
|
|
<!-- Modules -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyModule_Type">
|
|
Python module {*((python36.dll!PyModuleObject *)this)->md_name}
|
|
</DisplayString>
|
|
|
|
<!-- Functions -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyFunction_Type">
|
|
Python function {*((python36.dll!PyFunctionObject *)this)->func_name}
|
|
</DisplayString>
|
|
|
|
<!-- C Function -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyCFunction_Type">
|
|
C Function {((python36.dll!PyCFunctionObject *)this)->m_ml->ml_name,s}
|
|
</DisplayString>
|
|
|
|
<!-- Bytes -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyBytes_Type">
|
|
Python bytes object {((python36.dll!PyBytesObject *)this)->ob_base.ob_size} bytes
|
|
</DisplayString>
|
|
|
|
<!-- Dictionaries -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyDict_Type">
|
|
Python dict, {((python36.dll!PyDictObject *)this)->ma_used} items
|
|
</DisplayString>
|
|
|
|
<!-- Lists -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyList_Type">
|
|
Python list, {((python36.dll!PyListObject *)this)->ob_base.ob_size} items
|
|
</DisplayString>
|
|
|
|
<!-- Tuples -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyTuple_Type">
|
|
Python tuple, {((python36.dll!PyTupleObject *)this)->ob_base.ob_size} items
|
|
</DisplayString>
|
|
|
|
<!-- Floats -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyFloat_Type">
|
|
{((python36.dll!PyFloatObject *)this)->ob_fval}
|
|
</DisplayString>
|
|
|
|
<!-- Longs -->
|
|
|
|
<!-- 30 bit digits -->
|
|
|
|
<!-- up to 30 bits -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type &&
|
|
sizeof(((python36.dll!PyLongObject *)this)->ob_digit) == 4 &&
|
|
((python36.dll!PyLongObject *)this)->ob_base.ob_size == 1">
|
|
{((python36.dll!PyLongObject *)this)->ob_digit[0]}
|
|
</DisplayString>
|
|
<!-- up to 60 bits -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type &&
|
|
sizeof(((python36.dll!PyLongObject *)this)->ob_digit[0]) == 4 &&
|
|
((python36.dll!PyLongObject *)this)->ob_base.ob_size == 2">
|
|
{
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[0])) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[1])<<30)
|
|
}
|
|
</DisplayString>
|
|
<!-- up to 64 bits (check for overflow) -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type &&
|
|
sizeof(((python36.dll!PyLongObject *)this)->ob_digit[0]) == 4 &&
|
|
((python36.dll!PyLongObject *)this)->ob_base.ob_size == 3 &&
|
|
((python36.dll!PyLongObject *)this)->ob_digit[2] <= 0xf">
|
|
{
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[0])) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[1])<<30) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[2])<<60)
|
|
}
|
|
</DisplayString>
|
|
|
|
<!-- 15 bit digits -->
|
|
|
|
<!-- up to 15 bits -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type &&
|
|
sizeof(((python36.dll!PyLongObject *)this)->ob_digit) == 2 &&
|
|
((python36.dll!PyLongObject *)this)->ob_base.ob_size == 1">
|
|
{((python36.dll!PyLongObject *)this)->ob_digit[0]}
|
|
</DisplayString>
|
|
<!-- up to 30 bits -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type &&
|
|
sizeof(((python36.dll!PyLongObject *)this)->ob_digit[0]) == 2 &&
|
|
((python36.dll!PyLongObject *)this)->ob_base.ob_size == 2">
|
|
{
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[0])) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[1])<<15)
|
|
}
|
|
</DisplayString>
|
|
<!-- up to 45 bits -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type &&
|
|
sizeof(((python36.dll!PyLongObject *)this)->ob_digit[0]) == 2 &&
|
|
((python36.dll!PyLongObject *)this)->ob_base.ob_size == 3">
|
|
{
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[0])) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[1])<<15) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[2])<<30)
|
|
}
|
|
</DisplayString>
|
|
<!-- up to 60 bits -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type &&
|
|
sizeof(((python36.dll!PyLongObject *)this)->ob_digit[0]) == 2 &&
|
|
((python36.dll!PyLongObject *)this)->ob_base.ob_size == 4">
|
|
{
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[0])) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[1])<<15) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[2])<<30) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[3])<<45)
|
|
}
|
|
</DisplayString>
|
|
<!-- up to 64 bits (check for overflow) -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type &&
|
|
sizeof(((python36.dll!PyLongObject *)this)->ob_digit[0]) == 4 &&
|
|
((python36.dll!PyLongObject *)this)->ob_base.ob_size == 5 &&
|
|
((python36.dll!PyLongObject *)this)->ob_digit[4] <= 0xf">
|
|
{
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[0])) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[1])<<15) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[2])<<30) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[3])<<45) +
|
|
(uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[4])<<60)
|
|
}
|
|
</DisplayString>
|
|
|
|
<!-- overflow -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type">
|
|
Python Big Integer
|
|
</DisplayString>
|
|
|
|
<!-- End Longs -->
|
|
|
|
<!-- Strings -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyUnicode_Type &&
|
|
((python36.dll!PyASCIIObject *)this)->state.ascii &&
|
|
((python36.dll!PyASCIIObject *)this)->state.compact">
|
|
<!-- Compact ASCII -->
|
|
{(char *)(((python36.dll!PyASCIIObject *)this) + 1),s}
|
|
</DisplayString>
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyUnicode_Type">
|
|
Non compact ASCII string
|
|
</DisplayString>
|
|
|
|
<!-- End Strings -->
|
|
|
|
<!-- Type Objects -->
|
|
<DisplayString Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyType_Type">
|
|
Type Object
|
|
</DisplayString>
|
|
|
|
<!-- Unknown Type -->
|
|
<DisplayString>
|
|
Unknown {ob_type->tp_name,s} object
|
|
</DisplayString>
|
|
|
|
<!-- Strings -->
|
|
<StringView Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyUnicode_Type &&
|
|
((python36.dll!PyASCIIObject *)this)->state.ascii &&
|
|
((python36.dll!PyASCIIObject *)this)->state.compact">
|
|
<!-- Compact ASCII -->
|
|
(char *)(((python36.dll!PyASCIIObject *)this) + 1),s
|
|
</StringView>
|
|
|
|
<!-- End Strings -->
|
|
|
|
<Expand>
|
|
<!-- Common properties -->
|
|
<Item Name="Reference Count">ob_refcnt</Item>
|
|
<Item Name="Type">ob_type</Item>
|
|
|
|
<!-- Modules -->
|
|
<Item Name="Module Name" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyModule_Type">
|
|
((python36.dll!PyModuleObject *)this)->md_name
|
|
</Item>
|
|
<Item Name="Module Dictionary" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyModule_Type">
|
|
((python36.dll!PyModuleObject *)this)->md_dict
|
|
</Item>
|
|
<Item Name="Module Properties" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyModule_Type">
|
|
(python36.dll!PyModuleObject *)this
|
|
</Item>
|
|
|
|
<!-- Functions -->
|
|
<Item Name="Function Name" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyFunction_Type">
|
|
((python36.dll!PyFunctionObject *)this)->func_name
|
|
</Item>
|
|
<Item Name="Function Properties" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyFunction_Type">
|
|
(python36.dll!PyFunctionObject *)this
|
|
</Item>
|
|
|
|
<!-- C Function -->
|
|
<Item Name="Function Properties" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyCFunction_Type">
|
|
(python36.dll!PyCFunctionObject *)this
|
|
</Item>
|
|
|
|
<!-- Dictionaries -->
|
|
<Item Name="Dict Properties" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyDict_Type">
|
|
(python36.dll!PyDictObject *)this
|
|
</Item>
|
|
<Item Name="[Length]" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyDict_Type">
|
|
((python36.dll!PyDictObject *)this)->ma_used
|
|
</Item>
|
|
<ArrayItems Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyDict_Type">
|
|
<!-- combined table-->
|
|
<Size>((python36.dll!PyDictObject *)this)->ma_used</Size>
|
|
<ValuePointer Condition="((python36.dll!PyDictObject *)this)->ma_keys->dk_size <= 0xff">
|
|
(python36.dll!PyDictKeyEntry *)(((python36.dll!PyDictObject *)this)->ma_keys->dk_indices.as_1 + (((python36.dll!PyDictObject *)this)->ma_keys->dk_size * 1))
|
|
</ValuePointer>
|
|
<ValuePointer Condition="((python36.dll!PyDictObject *)this)->ma_keys->dk_size <= 0xffff">
|
|
(python36.dll!PyDictKeyEntry *)(((python36.dll!PyDictObject *)this)->ma_keys->dk_indices.as_1 + (((python36.dll!PyDictObject *)this)->ma_keys->dk_size * 2))
|
|
</ValuePointer>
|
|
<ValuePointer Condition="((python36.dll!PyDictObject *)this)->ma_keys->dk_size <= 0xffffffff">
|
|
(python36.dll!PyDictKeyEntry *)(((python36.dll!PyDictObject *)this)->ma_keys->dk_indices.as_1 + (((python36.dll!PyDictObject *)this)->ma_keys->dk_size * 4))
|
|
</ValuePointer>
|
|
<ValuePointer Condition="((python36.dll!PyDictObject *)this)->ma_keys->dk_size > 0xffffffff">
|
|
(python36.dll!PyDictKeyEntry *)(((python36.dll!PyDictObject *)this)->ma_keys->dk_indices.as_1 + (((python36.dll!PyDictObject *)this)->ma_keys->dk_size * 8))
|
|
</ValuePointer>
|
|
</ArrayItems>
|
|
<ArrayItems Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyDict_Type &&
|
|
((python36.dll!PyDictObject *)this)->ma_values">
|
|
<!-- separate value -->
|
|
<Size>((python36.dll!PyDictObject *)this)->ma_used</Size>
|
|
<ValuePointer>((python36.dll!PyDictObject *)this)->ma_values</ValuePointer>
|
|
</ArrayItems>
|
|
|
|
<!-- End Dictionaries -->
|
|
|
|
<!-- Lists -->
|
|
<Item Name="[Length]" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyList_Type">
|
|
((python36.dll!PyListObject *)this)->ob_base.ob_size
|
|
</Item>
|
|
<ArrayItems Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyList_Type">
|
|
<Size>((python36.dll!PyListObject *)this)->ob_base.ob_size</Size>
|
|
<ValuePointer>
|
|
((python36.dll!PyListObject *)this)->ob_item
|
|
</ValuePointer>
|
|
</ArrayItems>
|
|
|
|
<!-- Tuple -->
|
|
<Item Name="[Length]" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyTuple_Type">
|
|
((python36.dll!PyTupleObject *)this)->ob_base.ob_size
|
|
</Item>
|
|
<ArrayItems Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyTuple_Type">
|
|
<Size>((python36.dll!PyTupleObject *)this)->ob_base.ob_size</Size>
|
|
<ValuePointer>
|
|
((python36.dll!PyTupleObject *)this)->ob_item
|
|
</ValuePointer>
|
|
</ArrayItems>
|
|
|
|
<!-- Longs -->
|
|
<Item Name="Number of Digit Sections" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type">
|
|
((python36.dll!PyLongObject *)this)->ob_base.ob_size
|
|
</Item>
|
|
<ArrayItems Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyLong_Type">
|
|
<Size>((python36.dll!PyLongObject *)this)->ob_base.ob_size</Size>
|
|
<ValuePointer>
|
|
((python36.dll!PyLongObject *)this)->ob_digit
|
|
</ValuePointer>
|
|
</ArrayItems>
|
|
|
|
<!-- Bytes -->
|
|
<Item Name="Bytes Data" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyBytes_Type">
|
|
(char *)((python36.dll!PyBytesObject *)this)->ob_sval
|
|
</Item>
|
|
|
|
<!-- Strings -->
|
|
<!-- General state (shared among all string representations) -->
|
|
<Item Name="String State" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyUnicode_Type">
|
|
((python36.dll!PyASCIIObject *)this)->state
|
|
</Item>
|
|
|
|
<!-- Compact ASCII strings -->
|
|
<Item Name="ASCII String Object" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyUnicode_Type &&
|
|
((python36.dll!PyASCIIObject *)this)->state.ascii &&
|
|
((python36.dll!PyASCIIObject *)this)->state.compact">
|
|
(python36.dll!PyASCIIObject *)this
|
|
</Item>
|
|
<Item Name="ASCII Data" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyUnicode_Type &&
|
|
((python36.dll!PyASCIIObject *)this)->state.ascii &&
|
|
((python36.dll!PyASCIIObject *)this)->state.compact">
|
|
(char *)(((python36.dll!PyASCIIObject *)this) + 1)
|
|
</Item>
|
|
|
|
<!-- Compact Unicode strings -->
|
|
<Item Name="Compact Unicode String Object" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyUnicode_Type &&
|
|
((python36.dll!PyASCIIObject *)this)->state.ascii == 0 &&
|
|
((python36.dll!PyASCIIObject *)this)->state.compact">
|
|
(python36.dll!PyCompactUnicodeObject *)this
|
|
</Item>
|
|
|
|
<!-- Non-compact Unicode strings -->
|
|
<Item Name="Unicode String Object" Condition="(python36.dll!_typeobject *)ob_type == &python36.dll!PyUnicode_Type &&
|
|
((python36.dll!PyASCIIObject *)this)->state.ascii == 0 &&
|
|
((python36.dll!PyASCIIObject *)this)->state.compact == 0">
|
|
(python36.dll!PyUnicodeObject *)this
|
|
</Item>
|
|
|
|
<!-- End Strings -->
|
|
</Expand>
|
|
</Type>
|
|
</AutoVisualizer> |