diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index d4241160db6..e7e25a482fe 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -966,7 +966,10 @@ class DumperBase(): children = [('error', error)] self.putSpecialValue("notcallable", children=children) else: - self.putItem(result) + if result is None: + self.putSpecialValue("notcallable") + else: + self.putItem(result) def call(self, rettype, value, func, *args): return self.callHelper(rettype, value, func, args) diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index e1a6ae64d63..fec4ee84b3d 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -737,11 +737,11 @@ class Dumper(DumperBase): return None if val is None else self.fromNativeValue(val) def nativeParseAndEvaluate(self, exp): + # FIXME: This breaks symbol discovery + if not self.allowInferiorCalls: + return None #self.warn('EVALUATE "%s"' % exp) try: - if not self.allowInferiorCalls: - return None - val = gdb.parse_and_eval(exp) return val except RuntimeError as error: @@ -1041,6 +1041,10 @@ class Dumper(DumperBase): except: return 0 + def symbolAddress(self, symbolName): + res = self.findSymbol(symbolName) + return res + def handleNewObjectFile(self, objfile): name = objfile.filename if self.isWindowsTarget():