aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-02-28 12:05:48 +0100
committerhjk <hjk121@nokiamail.com>2014-02-28 12:16:14 +0100
commit762f3e32fdb0caca63d08f49a49065e781b90d09 (patch)
tree31dce2f13835c7c480eb9ddc6e555eb1ee242a66 /share
parent41f2556543ac45dd7f1b44602422fe40d50372e5 (diff)
Debugger: Fix metaobject lookuop for older versions of GDB
Symbol.value is not available in 7.4 Change-Id: I86e00cbeef61669ca5950e35a7b0aed86dcb2f87 Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Diffstat (limited to 'share')
-rw-r--r--share/qtcreator/debugger/gdbbridge.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py
index 2bfa0f1f8f..8a3011de4f 100644
--- a/share/qtcreator/debugger/gdbbridge.py
+++ b/share/qtcreator/debugger/gdbbridge.py
@@ -833,6 +833,17 @@ class Dumper(DumperBase):
def extractByte(self, addr):
return struct.unpack("b", self.readRawMemory(addr, 1))[0]
+ def findSymbol(self, symbolName):
+ try:
+ result = gdb.lookup_global_symbol(symbolName)
+ return result.value() if result else 0
+ except:
+ pass
+ # Older GDB ~7.4
+ try:
+ return gdb.parse_and_eval(symbolName)
+ except:
+ return 0
def extractStaticMetaObjectHelper(self, typeName):
"""
@@ -844,15 +855,7 @@ class Dumper(DumperBase):
return 0
staticMetaObjectName = typeName + "::staticMetaObject"
- if hasattr(gdb, 'lookup_global_symbol'):
- result = gdb.lookup_global_symbol(staticMetaObjectName)
- result = result.value() if result else 0
- else:
- # Older GDB...
- try:
- result = gdb.parse_and_eval(staticMetaObjectName)
- except:
- result = 0
+ result = self.findSymbol(staticMetaObjectName)
# We need to distinguish Q_OBJECT from Q_GADGET:
# a Q_OBJECT SMO has a non-null superdata (unless it's QObject itself),