From 7c08f5a9b0777e606b09bf548a973f2c0818b9ba Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 11 Nov 2015 15:50:32 +0100 Subject: 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 --- share/qtcreator/debugger/lldbbridge.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'share/qtcreator/debugger') 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. -- cgit v1.2.1