From 982ada02d0d22767780d3d200c423479b8d50e6e Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 1 Jul 2010 08:56:06 +0200 Subject: [PATCH] debugger: don't try to deref void pointers in dumpers --- share/qtcreator/gdbmacros/dumper.py | 12 +++++++++--- share/qtcreator/gdbmacros/gdbmacros.py | 3 +++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index 82d49cb8fc3..77730fcfd7e 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1298,8 +1298,15 @@ class Dumper: elif typedefStrippedType.code == gdb.TYPE_CODE_PTR: #warn("POINTER: %s" % format) isHandled = False + target = stripTypedefs(type.target()) - if not format is None: + if (not isHandled) and target.code == gdb.TYPE_CODE_VOID: + self.putType(item.value.type) + self.putValue(str(value)) + self.putNumChild(0) + isHandled = True + + if (not isHandled) and (not format is None): self.putAddress(value.address) self.putType(item.value.type) isHandled = True @@ -1339,8 +1346,7 @@ class Dumper: self.putNumChild(0) isHandled = True - target = stripTypedefs(type.target()) - if (not isHandled) and target.code == gdb.TYPE_CODE_VOID: + if (not isHandled): self.putType(item.value.type) self.putValue(str(value)) self.putNumChild(0) diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py index 43041b4ce78..9795251c9ed 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.py +++ b/share/qtcreator/gdbmacros/gdbmacros.py @@ -1384,6 +1384,9 @@ def qdump__QRegion(d, item): with Children(d): d.putCallItem("rects", item, "rects()") +# qt_rgn might be 0 +# gdb.parse_and_eval("region")["d"].dereference()["qt_rgn"].dereference() + def qdump__QSet(d, item): def hashDataFirstNode(value):