debugger: refactor startup logic

This commit is contained in:
hjk
2010-07-08 18:10:50 +02:00
parent f2c7d33fa6
commit 9e7a456457
32 changed files with 341 additions and 239 deletions

View File

@@ -162,7 +162,7 @@
//
// Transitions marked by '---' are done in the individual engines.
// Transitions marked by '+-+' are done in the base DebuggerEngine.
// The GdbEngine->startEngine() function is described in more detail below.
// The GdbEngine->setupEngine() function is described in more detail below.
//
// DebuggerNotReady
// +
@@ -170,7 +170,11 @@
// EngineStarting
// +
// +
// (calls *Engine->startEngine())
// (calls *Engine->setupEngine())
// | |
// {notify- {notify-
// Engine- Engine-
// StartOk} StartFailed}
// | |
// | `---> EngineStartFailed
// | +
@@ -182,14 +186,18 @@
// +
// [calls RunControl->StartSuccessful]
// +
// (calls *Engine->startInferior())
// (calls *Engine->setupInferior())
// | |
// | ` ----> InferiorStartFailed +-+-+-+->.
// {notify- {notify-
// Inferior- Inferior-
// SetupOk} SetupFailed}
// | |
// | ` ----> InferiorSetupFailed +-+-+-+->.
// | +
// v +
// InferiorStarted +
// +
// (calls *Engine->runInferior()) +
// InferiorSetupOk +
// + +
// (calls *Engine->runEngine()) +
// | +
// (core) | (attach) (term) (remote) (script) +
// .-----------------<-|->------------------. +
@@ -219,7 +227,7 @@
// Transitions marked by '---' are done in the individual adapters.
// Transitions marked by '+-+' are done in the GdbEngine.
// GdbEngine::startEngine()
// GdbEngine::setupEngine()
// +
// +
// (calls *Adapter->startAdapter())
@@ -2681,7 +2689,7 @@ bool DebuggerListener::coreAboutToClose()
case EngineStarted: // Most importantly, terminating a running
case EngineStartFailed: // debuggee can cause problems.
case InferiorUnrunnable:
case InferiorStartFailed:
case InferiorSetupFailed:
case InferiorStopped:
case InferiorShutDown:
cleanTermination = true;