aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurindam Jana <aurindam.jana@nokia.com>2012-04-17 11:00:18 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-17 11:10:04 +0200
commit812997036a44733c3407d925f42d98c4ff0e6c6f (patch)
tree45e6b027c82468e7c82db5203bb9b164efb7a0c0
parent18d6bf40169a5765ee35f00131d470fd64125e22 (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.cpp24
-rw-r--r--src/qml/debugger/qv8debugservice_p.h2
-rw-r--r--tests/auto/qml/debugger/qqmldebugjs/data/test.qml6
-rw-r--r--tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp33
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();