From b5579bbaf4db3725e0ea1437c73d99f4de126a40 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 13 Aug 2010 13:17:13 +0200 Subject: [PATCH] debugger: make QObject dumper more robust when QtCore has no debug info --- share/qtcreator/gdbmacros/dumper.py | 15 +++++---------- share/qtcreator/gdbmacros/gdbmacros.py | 11 +++++++++-- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index 8876dbad404..8e4df09c9aa 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1354,18 +1354,13 @@ class Dumper: .replace("::", "__") # Is this derived from QObject? + hasMetaObject = False try: - item.value['staticMetaObject'] - hasMetaObject = True + if value.type.code != gdb.TYPE_CODE_PTR: + mo = item.value['staticMetaObject'] + hasMetaObject = True except: - hasMetaObject = False - - # Is this derived from QObject? - try: - item.value['staticMetaObject'] - hasMetaObject = True - except: - hasMetaObject = False + pass #warn(" STRIPPED: %s" % nsStrippedType) #warn(" DUMPERS: %s" % (nsStrippedType in qqDumpers)) diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py index 6752b671691..1a912257161 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.py +++ b/share/qtcreator/gdbmacros/gdbmacros.py @@ -599,8 +599,15 @@ def qdump__QObject(d, item): # superData = superData.dereference()["d"]["superdata"] # warn("SUPERDATA: %s" % superData) - privateType = lookupType(d.ns + "QObjectPrivate").pointer() - d_ptr = item.value["d_ptr"]["d"].cast(privateType).dereference() + privateType = lookupType(d.ns + "QObjectPrivate") + if privateType is None: + d.putNumChild(4) + #d.putValue(cleanAddress(item.value.address)) + if d.isExpanded(item): + with Children(d): + d.putFields(item) + return + d_ptr = item.value["d_ptr"]["d"].cast(privateType.pointer()).dereference() #warn("D_PTR: %s " % d_ptr) objectName = d_ptr["objectName"] #warn("OBJECTNAME: %s " % objectName)