Debugger [CDB]: Release COM interfaces on RunControl finished.

Ensure that at most one instance of the CDBEngine is alive.
Prevent inconsistent debugger states if several sessions are started.
Squashed cherry-picked commits from master correcting the
plugin state handling (2efdeb5cd0,
57f7616286).

Reviewed-by: hjk
Task-number: QTCREATORBUG-2894
This commit is contained in:
hjk
2010-10-26 17:08:12 +02:00
committed by Friedemann Kleint
parent 528999d549
commit 5a5ba58dc9
5 changed files with 86 additions and 17 deletions

View File

@@ -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()
@@ -1244,7 +1244,7 @@ void DebuggerEngine::notifyEngineRunFailed()
d->m_progress.reportCanceled();
d->m_progress.reportFinished();
setState(EngineRunFailed);
d->queueShutdownInferior();
d->queueShutdownEngine();
}
void DebuggerEngine::notifyEngineRunAndInferiorRunOk()