diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index c2a3fa94a5f..0c810556b9f 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -177,12 +177,14 @@ class PlainDumper(): def importPlainDumpers(args): if args == 'off': + theDumper.usePlainDumpers = False try: gdb.execute('disable pretty-printer .* .*') except: # Might occur in non-ASCII directories DumperBase.warn('COULD NOT DISABLE PRETTY PRINTERS') else: + theDumper.usePlainDumpers = True theDumper.importPlainDumpers() @@ -219,6 +221,9 @@ class Dumper(DumperBase): def __init__(self): DumperBase.__init__(self) + # whether to load plain dumpers for objfiles + self.usePlainDumpers = False + # These values will be kept between calls to 'fetchVariables'. self.isGdb = True self.typeCache = {} @@ -1033,11 +1038,14 @@ class Dumper(DumperBase): self.qqDumpers[name] = PlainDumper(printer) self.qqFormats[name] = '' + def importPlainDumpersForObj(self, obj): + for printers in obj.pretty_printers + gdb.pretty_printers: + for printer in printers.subprinters: + self.importPlainDumper(printer) + def importPlainDumpers(self): for obj in gdb.objfiles(): - for printers in obj.pretty_printers + gdb.pretty_printers: - for printer in printers.subprinters: - self.importPlainDumper(printer) + self.importPlainDumpersForObj(obj) def qtNamespace(self): # This function is replaced by handleQtCoreLoaded() @@ -1060,6 +1068,9 @@ class Dumper(DumperBase): self.addDebugLibs(objfile) self.handleQtCoreLoaded(objfile) + if self.usePlainDumpers: + self.importPlainDumpersForObj(objfile) + def addDebugLibs(self, objfile): # The directory where separate debug symbols are searched for # is "/usr/lib/debug".