summaryrefslogtreecommitdiff
path: root/share/qtcreator/debugger
diff options
context:
space:
mode:
authorhjk <hjk@theqtcompany.com>2015-11-11 15:50:32 +0100
committerhjk <hjk@theqtcompany.com>2015-12-07 12:38:50 +0000
commit7c08f5a9b0777e606b09bf548a973f2c0818b9ba (patch)
tree4b695f50e66ec0e7bdb90717f3f9dc9d59178abd /share/qtcreator/debugger
parent19d9dc0ce37bdc52f7c5c7e382480052ed463851 (diff)
downloadqt-creator-7c08f5a9b0777e606b09bf548a973f2c0818b9ba.tar.gz
Debugger: Further improve base class dumping with LLDB
... in the presence of empty base classes. This now actually makes the Inheritance dumper test pass. Change-Id: I92ada5da46accb6e7eaff58ce5dc329484ef0909 Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Diffstat (limited to 'share/qtcreator/debugger')
-rw-r--r--share/qtcreator/debugger/lldbbridge.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index e49d71730f..b453b5a870 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -1123,14 +1123,15 @@ class Dumper(DumperBase):
self.value = value
baseObjects = []
+ # GetNumberOfDirectBaseClasses() includes(!) GetNumberOfVirtualBaseClasses()
+ # so iterating over .GetNumberOfDirectBaseClasses() is correct.
for i in xrange(value.GetType().GetNumberOfDirectBaseClasses()):
baseClass = value.GetType().GetDirectBaseClassAtIndex(i).GetType()
baseChildCount = baseClass.GetNumberOfFields() \
- + baseClass.GetNumberOfDirectBaseClasses() \
- + baseClass.GetNumberOfVirtualBaseClasses()
+ + baseClass.GetNumberOfDirectBaseClasses()
if baseChildCount:
+ baseObjects.append(ChildItem(baseClass.GetName(), value.GetChildAtIndex(memberBase)))
memberBase += 1
- baseObjects.append(ChildItem(baseClass.GetName(), value.GetChildAtIndex(i)))
else:
# This base object is empty, but exists and will *not* be reported
# by value.GetChildCount(). So manually report the empty base class.