diff --git a/src/plugins/debugger/qml/qmldebuggerclient.h b/src/plugins/debugger/qml/qmldebuggerclient.h index 984869cf09817523f0b7594db4da771375142338..93c05299e23b51f29770d99f902591239fe1f7c9 100644 --- a/src/plugins/debugger/qml/qmldebuggerclient.h +++ b/src/plugins/debugger/qml/qmldebuggerclient.h @@ -59,6 +59,7 @@ public: virtual void continueInferior() = 0; virtual void interruptInferior() = 0; + virtual void shutdownInferior() = 0; virtual void activateFrame(int index) = 0; diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index 06f4d53d1c411913c4ee1ba6fe9496670b865350..9ff95179ee480c6cd729b8b6c2f09108741398f1 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -375,10 +375,13 @@ void QmlEngine::handleRemoteSetupFailed(const QString &message) void QmlEngine::shutdownInferior() { + d->m_adapter.activeDebuggerClient()->shutdownInferior(); + if (isSlaveEngine()) { resetLocation(); } stopApplicationLauncher(); + notifyInferiorShutdownOk(); } @@ -417,7 +420,7 @@ void QmlEngine::interruptInferior() { logMessage(LogSend, "INTERRUPT"); d->m_adapter.activeDebuggerClient()->interruptInferior(); - + notifyInferiorStopOk(); } void QmlEngine::executeStep() @@ -724,8 +727,6 @@ void QmlEngine::inferiorSpontaneousStop() { if (state() == InferiorRunOk) notifyInferiorSpontaneousStop(); - else - notifyInferiorStopOk(); } void QmlEngine::disconnected() diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp index 0e1d9a41234ec7390072cd98024298077bfe26eb..9c99a4fef33a8657dbfaec2ba1b580fff15a0760 100644 --- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp +++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp @@ -192,6 +192,18 @@ void QmlV8DebuggerClient::interruptInferior() } +void QmlV8DebuggerClient::shutdownInferior() +{ + QByteArray request; + + JsonInputStream(request) << '{' << INITIALPARAMS ; + JsonInputStream(request) << ',' << "command" << ':' << "disconnect"; + + JsonInputStream(request) << '}'; + + sendMessage(packMessage(request)); +} + void QmlV8DebuggerClient::activateFrame(int index) { setLocals(index); diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.h b/src/plugins/debugger/qml/qmlv8debuggerclient.h index f446bb65b0b663997723109c908ea11e6a29d03b..decb635b5fdfc177a39d55fb87712ebc2898ed82 100644 --- a/src/plugins/debugger/qml/qmlv8debuggerclient.h +++ b/src/plugins/debugger/qml/qmlv8debuggerclient.h @@ -59,6 +59,7 @@ public: void continueInferior(); void interruptInferior(); + void shutdownInferior(); void activateFrame(int index); diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp index bbeed2c99c6da8a4203b018c680fe9e49481800a..6246e2ce89114b999549de04c8df01486dda3f14 100644 --- a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp +++ b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp @@ -192,6 +192,11 @@ void QScriptDebuggerClient::interruptInferior() sendMessage(reply); } +void QScriptDebuggerClient::shutdownInferior() +{ + +} + void QScriptDebuggerClient::activateFrame(int index) { QByteArray reply; diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.h b/src/plugins/debugger/qml/qscriptdebuggerclient.h index 9cc5c40cef19b7a3671792bbb1437396a4533c32..9ebb93d4b7abf84a810e5260bd5a25e757094ed5 100644 --- a/src/plugins/debugger/qml/qscriptdebuggerclient.h +++ b/src/plugins/debugger/qml/qscriptdebuggerclient.h @@ -58,6 +58,7 @@ public: void continueInferior(); void interruptInferior(); + void shutdownInferior(); void activateFrame(int index);