From 29c0f0bfef4af34a3d56a8270b07fa3b1f7c5ed9 Mon Sep 17 00:00:00 2001 From: Aurindam Jana Date: Wed, 24 Aug 2011 17:35:07 +0200 Subject: [PATCH] Debugger: Client Service synchronization Sends connect command after all initial commands have been sent. This ensures that the initialization is complete before the start of the debugging session. Change-Id: I1903caa9c213fef4e6b40df89a352d80e350a46d Reviewed-on: http://codereview.qt.nokia.com/3526 Reviewed-by: Qt Sanity Bot Reviewed-by: Christiaan Janssen --- src/plugins/debugger/qml/qmladapter.cpp | 2 +- src/plugins/debugger/qml/qmldebuggerclient.h | 4 ++-- src/plugins/debugger/qml/qmlengine.cpp | 2 +- src/plugins/debugger/qml/qmlv8debuggerclient.cpp | 4 ++-- src/plugins/debugger/qml/qmlv8debuggerclient.h | 4 ++-- src/plugins/debugger/qml/qscriptdebuggerclient.cpp | 12 ++++++++---- src/plugins/debugger/qml/qscriptdebuggerclient.h | 4 ++-- 7 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/plugins/debugger/qml/qmladapter.cpp b/src/plugins/debugger/qml/qmladapter.cpp index dbe23aab93..5765b518da 100644 --- a/src/plugins/debugger/qml/qmladapter.cpp +++ b/src/plugins/debugger/qml/qmladapter.cpp @@ -170,8 +170,8 @@ void QmlAdapter::clientStatusChanged(QDeclarativeDebugClient::Status status) if (status == QDeclarativeDebugClient::Enabled) { d->m_qmlClient = d->debugClients.value(serviceName); - d->m_qmlClient->connect(); d->m_qmlClient->flushSendBuffer(); + d->m_qmlClient->startSession(); } } diff --git a/src/plugins/debugger/qml/qmldebuggerclient.h b/src/plugins/debugger/qml/qmldebuggerclient.h index 69ceb86fc7..a9a8682c82 100644 --- a/src/plugins/debugger/qml/qmldebuggerclient.h +++ b/src/plugins/debugger/qml/qmldebuggerclient.h @@ -52,8 +52,8 @@ public: QmlDebuggerClient(QmlJsDebugClient::QDeclarativeDebugConnection* client, QLatin1String clientName); virtual ~QmlDebuggerClient(); - virtual void connect() = 0; - virtual void disconnect() = 0; + virtual void startSession() = 0; + virtual void endSession() = 0; virtual void executeStep() = 0; virtual void executeStepOut() = 0; diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index ebdbbb4e05..f65d8d2f17 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -375,7 +375,7 @@ void QmlEngine::handleRemoteSetupFailed(const QString &message) void QmlEngine::shutdownInferior() { - d->m_adapter.activeDebuggerClient()->disconnect(); + d->m_adapter.activeDebuggerClient()->endSession(); if (isSlaveEngine()) { resetLocation(); diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp index 157c028c6a..692c080d04 100644 --- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp +++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp @@ -192,7 +192,7 @@ void QmlV8DebuggerClient::interruptInferior() } -void QmlV8DebuggerClient::connect() +void QmlV8DebuggerClient::startSession() { QByteArray request; @@ -204,7 +204,7 @@ void QmlV8DebuggerClient::connect() sendMessage(packMessage(request)); } -void QmlV8DebuggerClient::disconnect() +void QmlV8DebuggerClient::endSession() { QByteArray request; diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.h b/src/plugins/debugger/qml/qmlv8debuggerclient.h index 70c0fec055..04aeec1762 100644 --- a/src/plugins/debugger/qml/qmlv8debuggerclient.h +++ b/src/plugins/debugger/qml/qmlv8debuggerclient.h @@ -52,8 +52,8 @@ public: explicit QmlV8DebuggerClient(QmlJsDebugClient::QDeclarativeDebugConnection *client); ~QmlV8DebuggerClient(); - void connect(); - void disconnect(); + void startSession(); + void endSession(); void executeStep(); void executeStepOut(); diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp index 755485200e..03bc3bd9ce 100644 --- a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp +++ b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp @@ -192,11 +192,17 @@ void QScriptDebuggerClient::interruptInferior() sendMessage(reply); } -void QScriptDebuggerClient::connect() +void QScriptDebuggerClient::startSession() { + //Set all breakpoints + BreakHandler *handler = d->engine->breakHandler(); + foreach (BreakpointModelId id, handler->engineBreakpointIds(d->engine)) { + QTC_ASSERT(handler->state(id) == BreakpointInsertProceeding,/**/); + handler->notifyBreakpointInsertOk(id); + } } -void QScriptDebuggerClient::disconnect() +void QScriptDebuggerClient::endSession() { } @@ -408,8 +414,6 @@ void QScriptDebuggerClient::messageReceived(const QByteArray &data) BreakHandler *handler = d->engine->breakHandler(); foreach (BreakpointModelId id, handler->engineBreakpointIds(d->engine)) { QString processedFilename = handler->fileName(id); - QTC_ASSERT(handler->state(id) == BreakpointInsertProceeding,/**/); - handler->notifyBreakpointInsertOk(id); if (processedFilename == file && handler->lineNumber(id) == line) { QTC_ASSERT(handler->state(id) == BreakpointInserted,/**/); diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.h b/src/plugins/debugger/qml/qscriptdebuggerclient.h index 79318cd806..daafb90ef0 100644 --- a/src/plugins/debugger/qml/qscriptdebuggerclient.h +++ b/src/plugins/debugger/qml/qscriptdebuggerclient.h @@ -51,8 +51,8 @@ public: QScriptDebuggerClient(QmlJsDebugClient::QDeclarativeDebugConnection *client); ~QScriptDebuggerClient(); - void connect(); - void disconnect(); + void startSession(); + void endSession(); void executeStep(); void executeStepOut(); -- 2.11.0