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