From 554f6dc9c24880259c35cfa1a7b4def32135039d Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 22 Oct 2018 09:52:17 +0100 Subject: [PATCH] Add natvis file for python objects --- qrenderdoc/python36.natvis | 322 ++++++++++++++++++++ qrenderdoc/qrenderdoc_local.vcxproj | 3 + qrenderdoc/qrenderdoc_local.vcxproj.filters | 3 + 3 files changed, 328 insertions(+) create mode 100644 qrenderdoc/python36.natvis diff --git a/qrenderdoc/python36.natvis b/qrenderdoc/python36.natvis new file mode 100644 index 000000000..84440cdaf --- /dev/null +++ b/qrenderdoc/python36.natvis @@ -0,0 +1,322 @@ + + + + + {*me_key} = {*me_value} + + + me_value + + + + + + + + + None + + + + True + False + + + + Python module {*((python36.dll!PyModuleObject *)this)->md_name} + + + + + Python function {*((python36.dll!PyFunctionObject *)this)->func_name} + + + + + C Function {((python36.dll!PyCFunctionObject *)this)->m_ml->ml_name,s} + + + + + Python bytes object {((python36.dll!PyBytesObject *)this)->ob_base.ob_size} bytes + + + + + Python dict, {((python36.dll!PyDictObject *)this)->ma_used} items + + + + + Python list, {((python36.dll!PyListObject *)this)->ob_base.ob_size} items + + + + + Python tuple, {((python36.dll!PyTupleObject *)this)->ob_base.ob_size} items + + + + + {((python36.dll!PyFloatObject *)this)->ob_fval} + + + + + + + + + {((python36.dll!PyLongObject *)this)->ob_digit[0]} + + + + { + (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[0])) + + (uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[1])<<30) + + (uint64_t(((python36.dll!PyLongObject *)this)->ob_digit[2])<<60) + } + + + + + + + {((python36.dll!PyLongObject *)this)->ob_digit[0]} + + + + { + (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[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[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[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) + } + + + + + Python Big Integer + + + + + + + + {(char *)(((python36.dll!PyASCIIObject *)this) + 1),s} + + + Non compact ASCII string + + + + + + + Type Object + + + + + Unknown {ob_type->tp_name,s} object + + + + + + (char *)(((python36.dll!PyASCIIObject *)this) + 1),s + + + + + + + ob_refcnt + ob_type + + + + ((python36.dll!PyModuleObject *)this)->md_name + + + ((python36.dll!PyModuleObject *)this)->md_dict + + + (python36.dll!PyModuleObject *)this + + + + + ((python36.dll!PyFunctionObject *)this)->func_name + + + (python36.dll!PyFunctionObject *)this + + + + + (python36.dll!PyCFunctionObject *)this + + + + + (python36.dll!PyDictObject *)this + + + ((python36.dll!PyDictObject *)this)->ma_used + + + + ((python36.dll!PyDictObject *)this)->ma_used + + (python36.dll!PyDictKeyEntry *)(((python36.dll!PyDictObject *)this)->ma_keys->dk_indices.as_1 + (((python36.dll!PyDictObject *)this)->ma_keys->dk_size * 1)) + + + (python36.dll!PyDictKeyEntry *)(((python36.dll!PyDictObject *)this)->ma_keys->dk_indices.as_1 + (((python36.dll!PyDictObject *)this)->ma_keys->dk_size * 2)) + + + (python36.dll!PyDictKeyEntry *)(((python36.dll!PyDictObject *)this)->ma_keys->dk_indices.as_1 + (((python36.dll!PyDictObject *)this)->ma_keys->dk_size * 4)) + + + (python36.dll!PyDictKeyEntry *)(((python36.dll!PyDictObject *)this)->ma_keys->dk_indices.as_1 + (((python36.dll!PyDictObject *)this)->ma_keys->dk_size * 8)) + + + + + ((python36.dll!PyDictObject *)this)->ma_used + ((python36.dll!PyDictObject *)this)->ma_values + + + + + + + ((python36.dll!PyListObject *)this)->ob_base.ob_size + + + ((python36.dll!PyListObject *)this)->ob_base.ob_size + + ((python36.dll!PyListObject *)this)->ob_item + + + + + + ((python36.dll!PyTupleObject *)this)->ob_base.ob_size + + + ((python36.dll!PyTupleObject *)this)->ob_base.ob_size + + ((python36.dll!PyTupleObject *)this)->ob_item + + + + + + ((python36.dll!PyLongObject *)this)->ob_base.ob_size + + + ((python36.dll!PyLongObject *)this)->ob_base.ob_size + + ((python36.dll!PyLongObject *)this)->ob_digit + + + + + + (char *)((python36.dll!PyBytesObject *)this)->ob_sval + + + + + + ((python36.dll!PyASCIIObject *)this)->state + + + + + (python36.dll!PyASCIIObject *)this + + + (char *)(((python36.dll!PyASCIIObject *)this) + 1) + + + + + (python36.dll!PyCompactUnicodeObject *)this + + + + + (python36.dll!PyUnicodeObject *)this + + + + + + \ No newline at end of file diff --git a/qrenderdoc/qrenderdoc_local.vcxproj b/qrenderdoc/qrenderdoc_local.vcxproj index 77f6be357..b087de4dc 100644 --- a/qrenderdoc/qrenderdoc_local.vcxproj +++ b/qrenderdoc/qrenderdoc_local.vcxproj @@ -1865,6 +1865,9 @@ IF %ERRORLEVEL% NEQ 0 (echo ==================================================== + + + \ No newline at end of file diff --git a/qrenderdoc/qrenderdoc_local.vcxproj.filters b/qrenderdoc/qrenderdoc_local.vcxproj.filters index 6ce23d43f..00522047e 100644 --- a/qrenderdoc/qrenderdoc_local.vcxproj.filters +++ b/qrenderdoc/qrenderdoc_local.vcxproj.filters @@ -1772,4 +1772,7 @@ Resources\Files + + + \ No newline at end of file