From: Friedemann Kleint Date: Wed, 16 Mar 2011 12:38:27 +0000 (+0100) Subject: Debugger[CDB]: Fix breakpoint context menu for CDB. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=0ae94ffc4dca721fcea66f3dbfc7cb64fbf7a009;p=qt-creator-jp%2Fqt-creator-jp.git Debugger[CDB]: Fix breakpoint context menu for CDB. Immediately report known data back when settings breakpoints so that line number/enabled is correct in the handler. --- diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index ffa829436c..b19218bf97 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -2366,11 +2366,16 @@ void CdbEngine::attemptBreakpointSynchronization() handler->notifyBreakpointInsertOk(id); m_pendingBreakpointMap.insert(id, response); addedChanged = true; + // Ensure enabled/disabled is correct in handler and line number is there. + handler->setResponse(id, response); if (debugBreakpoints) qDebug("Adding %llu %s\n", id, qPrintable(response.toString())); break; case BreakpointChangeRequested: handler->notifyBreakpointChangeProceeding(id); + if (debugBreakpoints) + qDebug("Changing %llu:\n %s\nTo %s\n", id, qPrintable(handler->response(id).toString()), + qPrintable(parameters.toString())); if (parameters.enabled != handler->response(id).enabled) { // Change enabled/disabled breakpoints without triggering update. postCommand((parameters.enabled ? "be " : "bd ") + QByteArray::number(id), 0); @@ -2385,8 +2390,6 @@ void CdbEngine::attemptBreakpointSynchronization() m_pendingBreakpointMap.insert(id, response); } handler->notifyBreakpointChangeOk(id); - if (debugBreakpoints) - qDebug("Changing %llu %s\n", id, qPrintable(response.toString())); break; case BreakpointRemoveRequested: postCommand("bc " + QByteArray::number(id), 0); @@ -2639,6 +2642,8 @@ void CdbEngine::handleBreakPoints(const GdbMi &value) currentResponse.pending = reportedResponse.pending; currentResponse.enabled = reportedResponse.enabled; formatCdbBreakPointResponse(id, currentResponse, str); + if (debugBreakpoints) + qDebug(" Setting for %llu: %s\n", id, qPrintable(currentResponse.toString())); handler->setResponse(id, currentResponse); m_pendingBreakpointMap.erase(it); }