From 063309a31122e516a643b0a1776f2e5d9e4a7e83 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Tue, 14 Sep 2010 18:43:32 +0200 Subject: [PATCH] debugger: make thread-naming feature work with namespaced Qt --- share/qtcreator/gdbmacros/dumper.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index 79e9449715e..76d653ab258 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 += '"},' -- GitLab