diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 52239c202b8af8eda083be962d132e4d714f1e30..72915e4f6fa70858e4e4ab9b5b54f5947237be6e 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -1178,7 +1178,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 c178d8a2ae6f22f40e93caf6bb66c3d1ac3810ea..7b0edfdb2c20542f0fc52df3530411399e9b11da 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