diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index ed1e352f50e6d637a28b44ced70ccdb8f59e7a49..5d4846c8ccb2ffa53a6978ebdabd3d60c1bb977d 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -168,25 +168,29 @@ class FrameCommand(gdb.Command): module = sys.modules[__name__] self.dumpers = {} + if useFancy == -1: + output = "dumpers=[" + for key, value in module.__dict__.items(): + if key.startswith("qqDump"): + if output != "dumpers=[": + output += "," + output += '"' + key[6:] + '"' + output += "]," + #output += "qtversion=[%d,%d,%d]" + output += "qtversion=[4,6,0]," + output += "namespace=\"%s\"," % qtNamespace() + output += "dumperversion=\"2.0\"," + output += "sizes=[]," + output += "expressions=[]" + output += "]" + print output + return + if useFancy: for key, value in module.__dict__.items(): #if callable(value): if key.startswith("qqDump"): self.dumpers[key[6:]] = value - self.dumpers["std__deque"] = qqDumpStdDeque - self.dumpers["std__list"] = qqDumpStdList - self.dumpers["std__map"] = qqDumpStdMap - self.dumpers["std__set"] = qqDumpStdSet - self.dumpers["std__vector"] = qqDumpStdVector - self.dumpers["string"] = qqDumpStdString - self.dumpers["std__string"] = qqDumpStdString - self.dumpers["std__wstring"] = qqDumpStdString - self.dumpers["std__basic_string"] = qqDumpStdString - self.dumpers["wstring"] = qqDumpStdString - # Hack to work around gdb bug #10898 - #self.dumpers["QString::string"] = qqDumpStdString - #warn("DUMPERS: %s " % self.dumpers) - try: frame = gdb.selected_frame() except RuntimeError: @@ -400,7 +404,7 @@ class Dumper: def dumpInnerValueHelper(self, item, field = "value"): if isSimpleType(item.value.type): - self.putItemHelper(item, field) + self.safePutItemHelper(item, field) def safePutItemHelper(self, item): self.pushOutput() @@ -436,7 +440,7 @@ class Dumper: def putItem(self, item): self.beginHash() - self.putItemHelper(item) + self.safePutItemHelper(item) self.endHash() def putItemOrPointer(self, item): @@ -458,7 +462,7 @@ class Dumper: self.putField("value", "(null)") self.putField("numchild", "0") else: - self.putItemHelper(item) + self.safePutItemHelper(item) def putItemHelper(self, item, field = "value"): @@ -547,7 +551,7 @@ class Dumper: # child.name = "*%s" % name # self.putField("name", child.name) #self.putType(child.value.type) - self.putItemHelper(child) + self.safePutItemHelper(child) self.endHash() self.endChildren() @@ -614,7 +618,7 @@ class Dumper: #d.putField("iname", child.iname) #d.putField("name", child.name) #d.putType(child.value.type) - self.putItemHelper(child) + self.safePutItemHelper(child) self.endHash() self.endChildren()