From d4fcdccad225f003e022cfdaebff0d244522c41d Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Mon, 20 Dec 2010 16:28:26 +0100
Subject: [PATCH] debugger: keep track of current gdb thread

---
 src/plugins/debugger/gdb/gdbengine.cpp | 9 +++++++--
 src/plugins/debugger/gdb/gdbengine.h   | 1 +
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 08b44160088..4bd86739619 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -1410,6 +1410,7 @@ void GdbEngine::handleStop1(const GdbMi &data)
         const QByteArray threadId = data.findChild("thread-id").data();
         const BreakpointId id = breakHandler()->findBreakpointByNumber(bpNumber);
         showStatusMessage(msgBreakpointTriggered(id, bpNumber, _(threadId)));
+        m_currentThread = threadId;
     } else {
         QString reasontr = msgStopped(_(reason));
         if (reason == "signal-received"
@@ -2984,8 +2985,12 @@ void GdbEngine::activateFrame(int frameIndex)
     // Otherwise the lines below would need to get triggered
     // after a response to this -stack-select-frame here.
     handler->setCurrentIndex(frameIndex);
-    postCommand("-stack-select-frame " + QByteArray::number(frameIndex),
-        Discardable, CB(handleStackSelectFrame));
+    QByteArray cmd = "-stack-select-frame";
+    //if (!m_currentThread.isEmpty())
+    //    cmd += " --thread " + m_currentThread;
+    cmd += ' ';
+    cmd += QByteArray::number(frameIndex);
+    postCommand(cmd, Discardable, CB(handleStackSelectFrame));
     gotoLocation(stackHandler()->currentFrame());
     updateLocals();
     reloadRegisters();
diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h
index 070a19a474d..df3268ec887 100644
--- a/src/plugins/debugger/gdb/gdbengine.h
+++ b/src/plugins/debugger/gdb/gdbengine.h
@@ -548,6 +548,7 @@ private: ////////// View & Data Stuff //////////
 
     // HACK:
     StackFrame m_targetFrame;
+    QByteArray m_currentThread;
 };
 
 } // namespace Internal
-- 
GitLab