From ae55b43c3782a06d625805e2135f2a0c3b7754b2 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Fri, 13 Aug 2010 09:50:14 +0200 Subject: [PATCH] debugger: fix display of QObject properties This is a backport of 5d645bfdfe87b22315997847191ac7d45b243e99 --- share/qtcreator/gdbmacros/dumper.py | 11 +++++++++++ share/qtcreator/gdbmacros/gdbmacros.py | 9 +++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index 317224d52f4..d49e1682fe0 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1326,6 +1326,13 @@ class Dumper: nsStrippedType = self.stripNamespaceFromType( typedefStrippedType).replace("::", "__") + # Is this derived from QObject? + try: + item.value['staticMetaObject'] + hasMetaObject = True + except: + hasMetaObject = False + #warn(" STRIPPED: %s" % nsStrippedType) #warn(" DUMPERS: %s" % self.dumpers) #warn(" DUMPERS: %s" % (nsStrippedType in self.dumpers)) @@ -1336,6 +1343,10 @@ class Dumper: self.putValue(value) self.putNumChild(0) + elif hasMetaObject and self.useFancy: + self.putType(item.value.type) + qdump__QObject(self, item) + elif nsStrippedType in self.dumpers: #warn("IS DUMPABLE: %s " % type) self.putType(item.value.type) diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py index 60869f6e8d8..4db5d3850c9 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.py +++ b/share/qtcreator/gdbmacros/gdbmacros.py @@ -578,9 +578,6 @@ def extractCString(table, offset): return result -def qdump__QWidget(d, item): - qdump__QObject(d, item) - def qdump__QObject(d, item): #warn("OBJECT: %s " % item.value) staticMetaObject = item.value["staticMetaObject"] @@ -617,15 +614,15 @@ def qdump__QObject(d, item): d.putNumChild(4) if d.isExpanded(item): with Children(d): + d.putFields(item) # Parent and children. d.putItem(Item(d_ptr["parent"], item.iname, "parent", "parent")) d.putItem(Item(d_ptr["children"], item.iname, "children", "children")) # Properties. with SubItem(d): - #propertyCount = metaData[6] - # FIXME: Replace with plain memory accesses. - propertyCount = call(mo, "propertyCount()") + propertyCount = metaData[6] + #propertyCount = call(mo, "propertyCount()") #warn("PROPERTY COUNT: %s" % propertyCount) propertyData = metaData[7] d.putName("properties") -- GitLab