From f01980e6c695458896229138ec213d3c28bf91d5 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Thu, 1 Jul 2010 09:37:28 +0200 Subject: [PATCH] debugger: work around gdb bug http://sourceware.org/bugzilla/show_bug.cgi?id=11777 --- share/qtcreator/gdbmacros/dumper.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index 77730fcfd7e..106d537acf9 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1399,7 +1399,14 @@ class Dumper: # Insufficient, see http://sourceware.org/bugzilla/show_bug.cgi?id=10953 #fields = value.type.fields() - fields = stripTypedefs(value.type).fields() + + # Insufficient, see http://sourceware.org/bugzilla/show_bug.cgi?id=11777 + #fields = stripTypedefs(value.type).fields() + + # This seems to work. + type = stripTypedefs(type) + type = lookupType(str(type)) + fields = type.fields() self.putType(item.value.type) try: @@ -1436,7 +1443,10 @@ class Dumper: def putFields(self, item, innerType = None): value = item.value - fields = stripTypedefs(value.type).fields() + type = stripTypedefs(value.type) + # http://sourceware.org/bugzilla/show_bug.cgi?id=11777 + type = lookupType(str(type)) + fields = stripTypedefs(type).fields() baseNumber = 0 for field in fields: #warn("FIELD: %s" % field) @@ -1447,9 +1457,9 @@ class Dumper: continue # A static class member(?). if field.name is None: - innerType = value.type.target() + innerType = type.target() p = value.cast(innerType.pointer()) - for i in xrange(value.type.sizeof / innerType.sizeof): + for i in xrange(type.sizeof / innerType.sizeof): self.putItem(Item(p.dereference(), item.iname, i, None)) p = p + 1 continue -- GitLab