forked from qt-creator/qt-creator
CDB: Restore current thread.
This commit is contained in:
@@ -226,6 +226,8 @@ static inline QString msgGetThreadStateFailed(unsigned long threadId, const QStr
|
|||||||
return QString::fromLatin1("Unable to determine the state of thread %1: %2").arg(threadId).arg(why);
|
return QString::fromLatin1("Unable to determine the state of thread %1: %2").arg(threadId).arg(why);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Determine information about thread. This changes the
|
||||||
|
// current thread to thread->id.
|
||||||
static inline bool getStoppedThreadState(const CdbComInterfaces &cif,
|
static inline bool getStoppedThreadState(const CdbComInterfaces &cif,
|
||||||
ThreadData *t,
|
ThreadData *t,
|
||||||
QString *errorMessage)
|
QString *errorMessage)
|
||||||
@@ -315,6 +317,14 @@ bool CdbStackTraceContext::getThreads(const CdbComInterfaces &cif,
|
|||||||
}
|
}
|
||||||
threads->push_back(threadData);
|
threads->push_back(threadData);
|
||||||
}
|
}
|
||||||
|
// Restore thread id
|
||||||
|
if (isStopped && threads->back().id != *currentThreadId) {
|
||||||
|
hr = cif.debugSystemObjects->SetCurrentThreadId(*currentThreadId);
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
*errorMessage= msgGetThreadsFailed(msgComFailed("SetCurrentThreadId", hr));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user