From 42048fa2a00607f8d7a14af1cf01f5892f2cb2fa Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Mon, 18 Apr 2011 16:49:41 +0200 Subject: [PATCH] QmlDebugger: fixed shutdown combined engine Task-number: QTCREATORBUG-4451 Reviewed-by: Kai Koehne --- src/plugins/debugger/debuggerengine.cpp | 8 +++++--- src/plugins/debugger/qml/qmlcppengine.cpp | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index db3bdd32d3..87e4103517 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -209,8 +209,11 @@ public slots: QTC_ASSERT(state() == EngineShutdownOk || state() == EngineShutdownFailed, qDebug() << state()); m_engine->setState(DebuggerFinished); - m_engine->showMessage(_("QUEUE: FINISH DEBUGGER")); - QTimer::singleShot(0, this, SLOT(doFinishDebugger())); + resetLocation(); + if (isMasterEngine()) { + m_engine->showMessage(_("QUEUE: FINISH DEBUGGER")); + QTimer::singleShot(0, this, SLOT(doFinishDebugger())); + } } void raiseApplication() @@ -1011,7 +1014,6 @@ void DebuggerEnginePrivate::doFinishDebugger() { m_engine->showMessage(_("NOTE: FINISH DEBUGGER")); QTC_ASSERT(state() == DebuggerFinished, qDebug() << m_engine << state()); - resetLocation(); if (isMasterEngine() && m_runControl) m_runControl->debuggingFinished(); } diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp index 56950b7e70..888a0b47d2 100644 --- a/src/plugins/debugger/qml/qmlcppengine.cpp +++ b/src/plugins/debugger/qml/qmlcppengine.cpp @@ -373,13 +373,13 @@ void QmlCppEngine::continueInferior() void QmlCppEngine::interruptInferior() { EDEBUG("\nMASTER INTERRUPT INFERIOR"); + d->m_cppEngine->requestInterruptInferior(); } void QmlCppEngine::requestInterruptInferior() { EDEBUG("\nMASTER REQUEST INTERRUPT INFERIOR"); DebuggerEngine::requestInterruptInferior(); - d->m_cppEngine->requestInterruptInferior(); } void QmlCppEngine::executeRunToLine(const ContextData &data) @@ -570,6 +570,9 @@ void QmlCppEngine::slaveEngineStateChanged case InferiorStopOk: if (isDying()) { EDEBUG("... AN INFERIOR STOPPED DURING SHUTDOWN "); + if (state() == InferiorStopRequested) { + notifyInferiorStopOk(); + } } else { if (slaveEngine != d->m_activeEngine) { QString engineName = slaveEngine == d->m_cppEngine -- 2.11.0