diff options
author | hjk <qtc-committer@nokia.com> | 2010-08-17 15:52:01 +0200 |
---|---|---|
committer | hjk <qtc-committer@nokia.com> | 2010-08-17 15:52:01 +0200 |
commit | 7788e95ee9a7355018e579c78b0c36e7f41ae16d (patch) | |
tree | 3fc61968f2abb98bf4ed7d795fca8777202d3620 | |
parent | ed0bed351a0edbf55521c21848e1b12f692be7fa (diff) | |
download | qt-creator-7788e95ee9a7355018e579c78b0c36e7f41ae16d.tar.gz |
debugger: fix display of arrays of types that gdb forgot about
(cherry picked from commit a1f2638c5fd6603c14065bcc0e0ddbe35463fc9b)
Conflicts:
share/qtcreator/gdbmacros/dumper.py
-rw-r--r-- | share/qtcreator/gdbmacros/dumper.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index 903efc214f..975303b971 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -116,10 +116,15 @@ def lookupType(typestring): try: #warn("LOOKING UP '%s'" % ts) type = gdb.lookup_type(ts) - except: - # Can throw "RuntimeError: No type named class Foo." - #warn("LOOKING UP '%s' FAILED" % ts) - pass + except RuntimeError, error: + #warn("LOOKING UP '%s': %s" % (ts, error)) + # See http://sourceware.org/bugzilla/show_bug.cgi?id=11912 + exp = "(class '%s'*)0" % ts + try: + type = parseAndEvaluate(exp).type.target() + except: + # Can throw "RuntimeError: No type named class Foo." + pass #warn(" RESULT: '%s'" % type) #if not type is None: # warn(" FIELDS: '%s'" % type.fields()) @@ -805,7 +810,9 @@ def extractFields(type): #warn("TYPE 0: %s" % type) type = stripTypedefs(type) #warn("TYPE 1: %s" % type) - type = lookupType(str(type)) + type0 = lookupType(str(type)) + if not type0 is None: + type = type0 #warn("TYPE 2: %s" % type) fields = type.fields() #warn("FIELDS: %s" % fields) |