diff options
author | Aurindam Jana <aurindam.jana@nokia.com> | 2012-04-17 11:00:18 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-17 11:10:04 +0200 |
commit | 812997036a44733c3407d925f42d98c4ff0e6c6f (patch) | |
tree | 45e6b027c82468e7c82db5203bb9b164efb7a0c0 | |
parent | 18d6bf40169a5765ee35f00131d470fd64125e22 (diff) |
QV8DebugService: v8::AfterCompile Events
Do not send v8::AfterCompile events. This speeds up the
debugger.
Change-Id: I84f5d90e24878af42d514e5d26c9e051502605f6
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
-rw-r--r-- | src/qml/debugger/qv8debugservice.cpp | 24 | ||||
-rw-r--r-- | src/qml/debugger/qv8debugservice_p.h | 2 | ||||
-rw-r--r-- | tests/auto/qml/debugger/qqmldebugjs/data/test.qml | 6 | ||||
-rw-r--r-- | tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp | 33 |
4 files changed, 19 insertions, 46 deletions
diff --git a/src/qml/debugger/qv8debugservice.cpp b/src/qml/debugger/qv8debugservice.cpp index 7d54a59ac0..f8831db6c6 100644 --- a/src/qml/debugger/qv8debugservice.cpp +++ b/src/qml/debugger/qv8debugservice.cpp @@ -67,7 +67,6 @@ const char *V8_DEBUGGER_KEY_DISCONNECT = "disconnect"; const char *V8_DEBUGGER_KEY_REQUEST = "v8request"; const char *V8_DEBUGGER_KEY_V8MESSAGE = "v8message"; const char *V8_DEBUGGER_KEY_BREAK_ON_SIGNAL = "breakonsignal"; -const char *V8_DEBUGGER_KEY_BREAK_AFTER_COMPILE = "breakaftercompile"; QT_BEGIN_NAMESPACE @@ -92,10 +91,15 @@ void DebugMessageHandler(const v8::Debug::Message& message) { v8::DebugEvent event = message.GetEvent(); - if (event != v8::Break && event != v8::Exception && - event != v8::AfterCompile && event != v8::BeforeCompile) + if (message.IsEvent()) { + if (event == v8::AfterCompile || event == v8::BeforeCompile) return; - v8ServiceInstancePtr->debugMessageHandler(QJSConverter::toString(message.GetJSON()), event); + } else if (event != v8::Break && event != v8::Exception && + event != v8::AfterCompile && event != v8::BeforeCompile) { + return; + } + + v8ServiceInstancePtr->debugMessageHandler(QJSConverter::toString(message.GetJSON())); } class QV8DebugServicePrivate : public QQmlDebugServicePrivate @@ -103,7 +107,6 @@ class QV8DebugServicePrivate : public QQmlDebugServicePrivate public: QV8DebugServicePrivate() : connectReceived(false) - , breakAfterCompile(false) , engine(0) { } @@ -113,7 +116,6 @@ public: static QByteArray packMessage(const QString &type, const QString &message = QString()); bool connectReceived; - bool breakAfterCompile; QMutex initializeMutex; QStringList breakOnSignals; const QV8Engine *engine; @@ -160,12 +162,9 @@ void QV8DebugService::setEngine(const QV8Engine *engine) d->engine = engine; } -void QV8DebugService::debugMessageHandler(const QString &message, const v8::DebugEvent &event) +void QV8DebugService::debugMessageHandler(const QString &message) { - Q_D(QV8DebugService); sendMessage(QV8DebugServicePrivate::packMessage(QLatin1String(V8_DEBUGGER_KEY_V8MESSAGE), message)); - if (event == v8::AfterCompile && d->breakAfterCompile) - scheduledDebugBreak(true); } void QV8DebugService::signalEmitted(const QString &signal) @@ -262,11 +261,6 @@ void QV8DebugService::messageReceived(const QByteArray &message) d->breakOnSignals.removeOne(signalName); sendMessage(QV8DebugServicePrivate::packMessage(QLatin1String(V8_DEBUGGER_KEY_BREAK_ON_SIGNAL))); - } else if (command == V8_DEBUGGER_KEY_BREAK_AFTER_COMPILE) { - QDataStream rs(data); - rs >> d->breakAfterCompile; - sendMessage(QV8DebugServicePrivate::packMessage(QLatin1String(V8_DEBUGGER_KEY_BREAK_AFTER_COMPILE))); - } } } diff --git a/src/qml/debugger/qv8debugservice_p.h b/src/qml/debugger/qv8debugservice_p.h index 8ff4adc778..84b300cee4 100644 --- a/src/qml/debugger/qv8debugservice_p.h +++ b/src/qml/debugger/qv8debugservice_p.h @@ -74,7 +74,7 @@ public: static QV8DebugService *instance(); static void initialize(const QV8Engine *engine); - void debugMessageHandler(const QString &message, const v8::DebugEvent &event); + void debugMessageHandler(const QString &message); void signalEmitted(const QString &signal); diff --git a/tests/auto/qml/debugger/qqmldebugjs/data/test.qml b/tests/auto/qml/debugger/qqmldebugjs/data/test.qml index 200f26b1c3..e6c6faa912 100644 --- a/tests/auto/qml/debugger/qqmldebugjs/data/test.qml +++ b/tests/auto/qml/debugger/qqmldebugjs/data/test.qml @@ -50,5 +50,11 @@ Item { var c var d = 12 } + function foo() { + var a = [1, 2] + var b = {a: "hello", d: 1 } + var c + var d = 12 + } } diff --git a/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp b/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp index 8293ec6cda..b93be16e0e 100644 --- a/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp +++ b/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp @@ -107,7 +107,6 @@ const char *GARBAGECOLLECTOR = "gc"; const char *CONNECT = "connect"; const char *INTERRUPT = "interrupt"; -const char *BREAKAFTERCOMPILE = "breakaftercompile"; const char *REQUEST = "request"; const char *IN = "in"; @@ -173,7 +172,6 @@ private slots: void connect(); void interrupt(); - void breakAfterCompile(); void getVersion(); void getVersionWhenAttaching(); @@ -270,7 +268,6 @@ public: void connect(); void interrupt(); - void breakAfterCompile(bool enabled); void continueDebugging(StepAction stepAction, int stepCount = 1); void evaluate(QString expr, bool global = false, bool disableBreak = false, int frame = -1, const QVariantMap &addContext = QVariantMap()); @@ -301,7 +298,6 @@ signals: void enabled(); void connected(); void interruptRequested(); - void breakAfterCompileRequested(); void result(); void stopped(); void scriptsResult(); @@ -334,14 +330,6 @@ void QJSDebugClient::interrupt() sendMessage(packMessage(INTERRUPT)); } -void QJSDebugClient::breakAfterCompile(bool enabled) -{ - QByteArray request; - QDataStream rs(&request, QIODevice::WriteOnly); - rs << enabled; - sendMessage(packMessage(BREAKAFTERCOMPILE, request)); -} - void QJSDebugClient::continueDebugging(StepAction action, int count) { // { "seq" : <number>, @@ -957,9 +945,6 @@ void QJSDebugClient::messageReceived(const QByteArray &data) emit stopped(); } - } else if (type == BREAKAFTERCOMPILE) { - emit breakAfterCompileRequested(); - } } } @@ -1074,18 +1059,6 @@ void tst_QQmlDebugJS::interrupt() QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(interruptRequested()))); } -void tst_QQmlDebugJS::breakAfterCompile() -{ - //void breakAfterCompile(bool enabled) - - QVERIFY(init()); - client->breakAfterCompile(true); - client->connect(); - - QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(breakAfterCompileRequested()))); - QVERIFY(QQmlDebugTest::waitForSignal(client, SIGNAL(stopped()))); -} - void tst_QQmlDebugJS::getVersion() { //void version() @@ -1146,9 +1119,9 @@ void tst_QQmlDebugJS::listBreakpoints() { //void listBreakpoints() - int sourceLine1 = 47; - int sourceLine2 = 48; - int sourceLine3 = 49; + int sourceLine1 = 53; + int sourceLine2 = 54; + int sourceLine3 = 55; QVERIFY(init()); client->connect(); |