forked from qt-creator/qt-creator
debugger: let the manually corrected bp line number take precedence
Looks like the number from '-break-info' cannot be trusted, even if 'original-line' is present.
This commit is contained in:
@@ -1175,6 +1175,9 @@ QString BreakHandler::BreakpointItem::toToolTip() const
|
|||||||
<< "<tr><td>" << tr("Line Number:")
|
<< "<tr><td>" << tr("Line Number:")
|
||||||
<< "</td><td>" << data.lineNumber
|
<< "</td><td>" << data.lineNumber
|
||||||
<< "</td><td>" << response.lineNumber << "</td></tr>"
|
<< "</td><td>" << response.lineNumber << "</td></tr>"
|
||||||
|
<< "<tr><td>" << tr("Corrected Line Number:")
|
||||||
|
<< "</td><td>-"
|
||||||
|
<< "</td><td>" << response.correctedLineNumber << "</td></tr>"
|
||||||
<< "<tr><td>" << tr("Breakpoint Address:")
|
<< "<tr><td>" << tr("Breakpoint Address:")
|
||||||
<< "</td><td>";
|
<< "</td><td>";
|
||||||
formatAddress(str, data.address);
|
formatAddress(str, data.address);
|
||||||
|
|||||||
@@ -2066,7 +2066,10 @@ void GdbEngine::updateBreakpointDataFromOutput(BreakpointId id, const GdbMi &bkp
|
|||||||
} else if (child.hasName("fullname")) {
|
} else if (child.hasName("fullname")) {
|
||||||
fullName = child.data();
|
fullName = child.data();
|
||||||
} else if (child.hasName("line")) {
|
} else if (child.hasName("line")) {
|
||||||
response.lineNumber = child.data().toInt();
|
// The line numbers here are the uncorrected ones. So don't
|
||||||
|
// change it if we know better already.
|
||||||
|
if (response.correctedLineNumber == 0)
|
||||||
|
response.lineNumber = child.data().toInt();
|
||||||
} else if (child.hasName("cond")) {
|
} else if (child.hasName("cond")) {
|
||||||
// gdb 6.3 likes to "rewrite" conditions. Just accept that fact.
|
// gdb 6.3 likes to "rewrite" conditions. Just accept that fact.
|
||||||
response.condition = child.data();
|
response.condition = child.data();
|
||||||
@@ -2475,6 +2478,7 @@ void GdbEngine::handleInfoLine(const GdbResponse &response)
|
|||||||
const int line = ba.mid(5, pos - 5).toInt();
|
const int line = ba.mid(5, pos - 5).toInt();
|
||||||
BreakpointResponse br = breakHandler()->response(id);
|
BreakpointResponse br = breakHandler()->response(id);
|
||||||
br.lineNumber = line;
|
br.lineNumber = line;
|
||||||
|
br.correctedLineNumber = line;
|
||||||
breakHandler()->setResponse(id, br);
|
breakHandler()->setResponse(id, br);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user