aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2020-12-08 11:58:00 +0100
committerDavid Schulz <david.schulz@qt.io>2020-12-08 12:36:30 +0000
commit618799809098bdba2bc336018f5d854713106676 (patch)
tree97a424f430fc9d219a4841c17399e7e2c6db56a4 /share
parenta41b4eea75e8d2404d097e1921dc2357a7a74170 (diff)
Debugger: re-add old qobject children dumper for qtversion < 6
Change-Id: Icbafb7c22d18247f89a8aa6a5029c9914d251c2e Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'share')
-rw-r--r--share/qtcreator/debugger/dumper.py28
1 files changed, 25 insertions, 3 deletions
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py
index 4c765990c6..731797bb6a 100644
--- a/share/qtcreator/debugger/dumper.py
+++ b/share/qtcreator/debugger/dumper.py
@@ -1897,9 +1897,31 @@ class DumperBase():
with SubItem(self, '[children]'):
if not self.isCli:
self.putSortGroup(8)
- dvtablePtr, qptr, parentPtr, children \
- = self.split('ppp{QList<QObject*>}', dd)
- self.putItem(children)
+
+ if self.qtVersion() >= 0x60000:
+ dvtablePtr, qptr, parentPtr, children \
+ = self.split('ppp{QList<QObject*>}', dd)
+ self.putItem(children)
+ else:
+ base = self.extractPointer(dd + 3 * ptrSize) # It's a QList<QObject *>
+ begin = self.extractInt(base + 8)
+ end = self.extractInt(base + 12)
+ array = base + 16
+ if self.qtVersion() < 0x50000:
+ array += ptrSize
+ self.check(begin >= 0 and end >= 0 and end <= 1000 * 1000 * 1000)
+ size = end - begin
+ self.check(size >= 0)
+ self.putItemCount(size)
+ if size > 0:
+ self.putExpandable()
+ if self.isExpanded():
+ addrBase = array + begin * ptrSize
+ with Children(self, size):
+ for i in self.childRange():
+ with SubItem(self, i):
+ childPtr = self.extractPointer(addrBase + i * ptrSize)
+ self.putItem(self.createValue(childPtr, qobjectType))
if isQMetaObject:
with SubItem(self, '[strings]'):