forked from qt-creator/qt-creator
debugger: finish combined shutdown properly
This commit is contained in:
@@ -978,7 +978,6 @@ void DebuggerEngine::notifyEngineShutdownOk()
|
|||||||
showMessage(_("NOTE: ENGINE SHUTDOWN OK"));
|
showMessage(_("NOTE: ENGINE SHUTDOWN OK"));
|
||||||
QTC_ASSERT(state() == EngineShutdownRequested, qDebug() << this << state());
|
QTC_ASSERT(state() == EngineShutdownRequested, qDebug() << this << state());
|
||||||
setState(EngineShutdownOk);
|
setState(EngineShutdownOk);
|
||||||
if (isMasterEngine())
|
|
||||||
d->queueFinishDebugger();
|
d->queueFinishDebugger();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -987,13 +986,11 @@ void DebuggerEngine::notifyEngineShutdownFailed()
|
|||||||
showMessage(_("NOTE: ENGINE SHUTDOWN FAILED"));
|
showMessage(_("NOTE: ENGINE SHUTDOWN FAILED"));
|
||||||
QTC_ASSERT(state() == EngineShutdownRequested, qDebug() << this << state());
|
QTC_ASSERT(state() == EngineShutdownRequested, qDebug() << this << state());
|
||||||
setState(EngineShutdownFailed);
|
setState(EngineShutdownFailed);
|
||||||
if (isMasterEngine())
|
|
||||||
d->queueFinishDebugger();
|
d->queueFinishDebugger();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebuggerEnginePrivate::doFinishDebugger()
|
void DebuggerEnginePrivate::doFinishDebugger()
|
||||||
{
|
{
|
||||||
QTC_ASSERT(isMasterEngine(), return);
|
|
||||||
m_engine->showMessage(_("NOTE: FINISH DEBUGGER"));
|
m_engine->showMessage(_("NOTE: FINISH DEBUGGER"));
|
||||||
QTC_ASSERT(state() == DebuggerFinished, qDebug() << m_engine << state());
|
QTC_ASSERT(state() == DebuggerFinished, qDebug() << m_engine << state());
|
||||||
resetLocation();
|
resetLocation();
|
||||||
@@ -1043,17 +1040,6 @@ void DebuggerEngine::notifyInferiorExited()
|
|||||||
qDebug() << "\nSPONTANEUOUS EXIT: " << this << d->m_state;
|
qDebug() << "\nSPONTANEUOUS EXIT: " << this << d->m_state;
|
||||||
showMessage(_("NOTE: INFERIOR EXITED"));
|
showMessage(_("NOTE: INFERIOR EXITED"));
|
||||||
d->resetLocation();
|
d->resetLocation();
|
||||||
/*
|
|
||||||
// This can be issued in almost any state. We assume, though,
|
|
||||||
// that at this point of time the inferior is not running anymore,
|
|
||||||
// even if stop notification were not issued or got lost.
|
|
||||||
if (state() == InferiorRunOk) {
|
|
||||||
setState(InferiorStopRequested);
|
|
||||||
setState(InferiorStopOk);
|
|
||||||
}
|
|
||||||
setState(InferiorShutdownRequested);
|
|
||||||
setState(InferiorShutdownOk);
|
|
||||||
*/
|
|
||||||
setState(InferiorExitOk);
|
setState(InferiorExitOk);
|
||||||
if (isMasterEngine()) {
|
if (isMasterEngine()) {
|
||||||
setState(InferiorShutdownOk);
|
setState(InferiorShutdownOk);
|
||||||
|
|||||||
@@ -557,13 +557,17 @@ void QmlCppEngine::slaveEngineStateChanged
|
|||||||
|
|
||||||
case EngineShutdownOk:
|
case EngineShutdownOk:
|
||||||
if (otherEngine->state() == EngineShutdownOk)
|
if (otherEngine->state() == EngineShutdownOk)
|
||||||
notifyEngineShutdownOk();
|
; // Wait for DebuggerFinished.
|
||||||
else
|
else
|
||||||
qDebug() << "... WAITING FOR OTHER ENGINE SHUTDOWN...";
|
qDebug() << "... WAITING FOR OTHER ENGINE SHUTDOWN...";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case DebuggerFinished:
|
case DebuggerFinished:
|
||||||
|
if (otherEngine->state() == DebuggerFinished)
|
||||||
|
notifyEngineShutdownOk();
|
||||||
|
else
|
||||||
|
qDebug() << "... WAITING FOR OTHER DEBUGGER TO FINISH...";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user