From 983936f9750ee35297ce75492f144812284feb2d Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 2 Dec 2016 13:07:58 +0100 Subject: Dumper: Fix QObject detection when using procedure linkage tables Change-Id: I3ac9889b822cb30d2ccdb6a7e2452e753cc3f2df Reviewed-by: hjk --- share/qtcreator/debugger/dumper.py | 3 ++- share/qtcreator/debugger/gdbbridge.py | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 35abe174a7..cfeb8f652a 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -254,6 +254,7 @@ class DumperBase: self.typesToReport = {} self.qtNamespaceToReport = None self.qtCustomEventFunc = 0 + self.qtCustomEventPltFunc = 0 self.qtPropertyFunc = 0 self.passExceptions = False self.isTesting = False @@ -1472,7 +1473,7 @@ class DumperBase: self.bump('nostruct-3') return False - return self.qtCustomEventFunc == customEventFunc + return customEventFunc in (self.qtCustomEventFunc, self.qtCustomEventPltFunc) def extractQObjectProperty(objectPtr): vtablePtr = self.extractPointer(objectPtr) diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index 43e234fa4d..ae3336569d 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -1012,7 +1012,7 @@ class Dumper(DumperBase): def findSymbol(self, symbolName): try: - return toInteger(gdb.parse_and_eval('(size_t)&%s' % symbolName)) + return toInteger(gdb.parse_and_eval("(size_t)&'%s'" % symbolName)) except: return 0 @@ -1054,6 +1054,12 @@ class Dumper(DumperBase): sym = '_ZN7QObject11customEventEP6QEvent' self.qtCustomEventFunc = self.findSymbol(sym) + if lenns: + sym = '_ZN%s7QObject11customEventEPNS_6QEventE@plt' % strns + else: + sym = '_ZN7QObject11customEventEP6QEvent@plt' + self.qtCustomEventPltFunc = self.findSymbol(sym) + sym = '_ZNK7%sQObject8propertyEPKc' % strns self.qtPropertyFunc = self.findSymbol(sym) -- cgit v1.2.1