Debugger: Fix engine state after "unreasonable jump requests"

After attempting to jump to an inaccessible location, the
engine was still expecting a ^running, while in fact GDB
was stopped. Add the right state transition.

Change-Id: I69aec785a1e9d2a23771f74ae35064ae61405fa5
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
hjk
2014-11-27 14:31:02 +01:00
parent 28fb4cc015
commit c5d86757a1

View File

@@ -1292,6 +1292,14 @@ void GdbEngine::handleExecuteJumpToLine(const GdbResponse &response)
// All is fine. Waiting for a *running
// and the temporary breakpoint to be hit.
notifyInferiorRunOk(); // Only needed for gdb < 7.0.
} else if (response.resultClass == GdbResultError) {
// Could be "Unreasonable jump request" or similar.
QString out = tr("Cannot jump. Stopped");
QByteArray msg = response.data["msg"].data();
if (!msg.isEmpty())
out += QString::fromLatin1(". " + msg);
showStatusMessage(out);
notifyInferiorRunFailed();
} else if (response.resultClass == GdbResultDone) {
// This happens on old gdb. Trigger the effect of a '*stopped'.
showStatusMessage(tr("Jumped. Stopped"));