diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 061ad97253e..d675fe77002 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -1139,6 +1139,8 @@ void DebuggerEngine::notifyEngineIll() interruptInferior(); break; case InferiorStopRequested: + notifyInferiorStopFailed(); + break; case InferiorStopOk: showMessage(_("FORWARDING STATE TO InferiorShutdownFailed")); setState(InferiorShutdownFailed, true); diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp index 5fec4144dc0..49082fd30ed 100644 --- a/src/plugins/debugger/qml/qmlcppengine.cpp +++ b/src/plugins/debugger/qml/qmlcppengine.cpp @@ -492,6 +492,11 @@ void QmlCppEngine::slaveEngineStateChanged EDEBUG(" COMBINED ENGINE: " << this << state() << isDying()); } + if (state() == DebuggerFinished) { + // We are done and don't care about slave state changes anymore. + return; + } + // Idea is to follow the state of the cpp engine, except where we are stepping in QML. // That is, when the QmlEngine moves between InferiorStopOk, and InferiorRunOk, InferiorStopOk ... //