diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index 79e9449715ea2d39c9f70a5f5d601166f0e26bb8..76d653ab25842392ed28f7821945a2570e417962 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1721,9 +1721,9 @@ class ThreadNamesCommand(gdb.Command): def __init__(self): super(ThreadNamesCommand, self).__init__("threadnames", gdb.COMMAND_OBSCURE) - self.ns = qtNamespace() def invoke(self, arg, from_tty): + ns = qtNamespace() out = '[' for thread in gdb.inferiors()[0].threads(): maximalStackDepth = int(arg) @@ -1736,12 +1736,13 @@ class ThreadNamesCommand(gdb.Command): e = e.older() if e == None or e.name() == None: break - if e.name() == self.ns + "QThreadPrivate::start": + if e.name() == ns + "QThreadPrivate::start": thrptr = e.read_var("thr").dereference() - d_ptr = thrptr["d_ptr"]["d"].cast(lookupType(self.ns + "QObjectPrivate").pointer()).dereference() + obtype = lookupType(ns + "QObjectPrivate").pointer() + d_ptr = thrptr["d_ptr"]["d"].cast(obtype).dereference() objectName = d_ptr["objectName"] - i = 0 - out += '{valueencoded="' + str(Hex4EncodedLittleEndianWithoutQuotes)+'",id="' + out += '{valueencoded="'; + out += str(Hex4EncodedLittleEndianWithoutQuotes)+'",id="' out += str(thread.num) + '",value="' out += encodeString(objectName) out += '"},'