diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 76a9d75236c9934942876112b9d456ae9b2d37bd..a13667bdb64bb20af48ad787b414c0b2580c046c 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -1182,7 +1182,7 @@ void DebuggerEngine::notifyEngineSetupFailed() setState(EngineSetupFailed); QTC_ASSERT(d->m_runControl, return); d->m_runControl->startFailed(); - d->queueShutdownEngine(); + setState(DebuggerFinished); } void DebuggerEngine::notifyEngineSetupOk() diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index ea90ff9f155df533787b803373b413ad38df41b9..820ad4e3917c6ffe6915306a162c4d05605a8458 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -172,6 +172,13 @@ // Transitions marked by '*' are done asynchronously. // The GdbEngine->setupEngine() function is described in more detail below. // +// The engines are responsible for local roll-back to the last +// acknowledged state before calling notify*Failed. I.e. before calling +// notifyEngineSetupFailed() any process started during setupEngine() +// so far must be terminated. +// +// +// // DebuggerNotReady // + // EngineSetupRequested