Debugger: Switch attach and setting of breakpoints

This avoids a race on Windows, where attaching is non-atomic.

Task-number: QTCREATORBUG-8663
Change-Id: I119cae7129882fabaa97fa3f236379e5efe62df9
Reviewed-by: David Schulz <david.schulz@digia.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
hjk
2014-05-16 01:46:05 +02:00
parent e6bfdde3bc
commit bae81a7181
2 changed files with 21 additions and 17 deletions

View File

@@ -2841,14 +2841,14 @@ void GdbEngine::changeBreakpoint(BreakpointModelId id)
QTC_ASSERT(state2 == BreakpointChangeProceeding, qDebug() << state2);
QVariant vid = QVariant::fromValue(id);
if (data.threadSpec != response.threadSpec) {
if (!response.pending && data.threadSpec != response.threadSpec) {
// The only way to change this seems to be to re-set the bp completely.
postCommand("-break-delete " + bpnr,
NeedsStop | RebuildBreakpointModel,
CB(handleBreakThreadSpec), vid);
return;
}
if (data.lineNumber != response.lineNumber) {
if (!response.pending && data.lineNumber != response.lineNumber) {
// The only way to change this seems to be to re-set the bp completely.
postCommand("-break-delete " + bpnr,
NeedsStop | RebuildBreakpointModel,