forked from qt-creator/qt-creator
debugger: fix manual changing of breakpoint line numbers
Task-number: QTCREATORBUG-6178 Change-Id: I3e0a3cae0ee5df02ad8ceee7222bc667e61774c8 Reviewed-by: Robert Löhning <robert.loehning@nokia.com> Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -2713,6 +2713,18 @@ void GdbEngine::handleBreakThreadSpec(const GdbResponse &response)
|
||||
insertBreakpoint(id);
|
||||
}
|
||||
|
||||
void GdbEngine::handleBreakLineNumber(const GdbResponse &response)
|
||||
{
|
||||
QTC_CHECK(response.resultClass == GdbResultDone)
|
||||
const BreakpointModelId id = response.cookie.value<BreakpointModelId>();
|
||||
BreakHandler *handler = breakHandler();
|
||||
BreakpointResponse br = handler->response(id);
|
||||
br.lineNumber = handler->lineNumber(id);
|
||||
handler->setResponse(id, br);
|
||||
handler->notifyBreakpointNeedsReinsertion(id);
|
||||
insertBreakpoint(id);
|
||||
}
|
||||
|
||||
void GdbEngine::handleBreakIgnore(const GdbResponse &response)
|
||||
{
|
||||
// gdb 6.8:
|
||||
@@ -3022,6 +3034,13 @@ void GdbEngine::changeBreakpoint(BreakpointModelId id)
|
||||
CB(handleBreakThreadSpec), vid);
|
||||
return;
|
||||
}
|
||||
if (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,
|
||||
CB(handleBreakLineNumber), vid);
|
||||
return;
|
||||
}
|
||||
if (data.command != response.command) {
|
||||
QByteArray breakCommand = "-break-commands " + bpnr;
|
||||
foreach (const QString &command, data.command.split(QLatin1String("\\n"))) {
|
||||
|
||||
Reference in New Issue
Block a user