diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index f9c7aee4f4b..10038fecd69 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -1804,7 +1804,7 @@ void CdbEngine::processStop(const GdbMi &stopReason, bool conditionalBreakPointT // Further examine stop and report to user QString message; QString exceptionBoxMessage; - Thread forcedThread; + bool forcedThread = false; const unsigned stopFlags = examineStopReason(stopReason, &message, &exceptionBoxMessage, conditionalBreakPointTriggered); m_stopMode = NoStopRequested; @@ -1842,7 +1842,7 @@ void CdbEngine::processStop(const GdbMi &stopReason, bool conditionalBreakPointT if (stopFlags & StopInArtificialThread) { showMessage(tr("Switching to main thread..."), LogMisc); runCommand({"~0 s", NoFlags}); - forcedThread = Thread(); + forcedThread = true; // Re-fetch stack again. reloadFullStack(); } else { @@ -1868,7 +1868,7 @@ void CdbEngine::processStop(const GdbMi &stopReason, bool conditionalBreakPointT if (threads.isValid()) { threadsHandler()->setThreads(threads); if (forcedThread) - threadsHandler()->setCurrentThread(forcedThread); + threadsHandler()->setCurrentThread(threadsHandler()->threadForId("0")); } else { showMessage(stopReason["threaderror"].data(), LogError); } diff --git a/src/plugins/debugger/threadshandler.cpp b/src/plugins/debugger/threadshandler.cpp index 5a5a353aacc..e7b00fbbaca 100644 --- a/src/plugins/debugger/threadshandler.cpp +++ b/src/plugins/debugger/threadshandler.cpp @@ -285,6 +285,7 @@ Thread ThreadsHandler::currentThread() const void ThreadsHandler::setCurrentThread(const Thread &thread) { + QTC_ASSERT(thread, return); if (thread == m_currentThread) return;