diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/qtcreator/debugger/dumper.py | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index d94ffbe640..c03f07d9e9 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -1304,6 +1304,17 @@ class DumperBase: self.putFormattedPointerX(value) self.ping('formattedPointer') + def putDerefedPointer(self, value): + derefValue = value.dereference() + innerType = value.type.target() #.unqualified() + self.putType(innerType) + savedCurrentChildType = self.currentChildType + self.currentChildType = innerType.name + derefValue.name = '*' + self.putItem(derefValue) + self.currentChildType = savedCurrentChildType + self.putOriginalAddress(value.pointer()) + def putFormattedPointerX(self, value): #warn("PUT FORMATTED: %s" % value) pointer = value.pointer() @@ -1328,6 +1339,10 @@ class DumperBase: self.putNumChild(0) return + if self.currentIName.endswith('.this'): + self.putDerefedPointer(value) + return + displayFormat = self.currentItemFormat(value.type.name) innerType = value.type.target() #.unqualified() @@ -1375,18 +1390,10 @@ class DumperBase: #warn('AUTODEREF: %s' % self.autoDerefPointers) #warn('INAME: %s' % self.currentIName) #warn('INNER: %s' % innerType.name) - if self.autoDerefPointers or self.currentIName.endswith('.this'): - derefValue = value.dereference() - # Never dereference char types. + if self.autoDerefPointers: + # Generic pointer type with AutomaticFormat, but never dereference char types: if innerType.name not in ('char', 'signed char', 'unsigned char', 'wchar_t'): - # Generic pointer type with AutomaticFormat. - self.putType(innerType) - savedCurrentChildType = self.currentChildType - self.currentChildType = innerType.name - derefValue.name = '*' - self.putItem(derefValue) - self.currentChildType = savedCurrentChildType - self.putOriginalAddress(pointer) + self.putDerefedPointer(value) return #warn('GENERIC PLAIN POINTER: %s' % value.type) |