From a2ccdd33888cb0eb4516089d3418dd01c8cca25c Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 22 Jul 2015 18:50:34 +0200 Subject: Move DataCollector into debugger plugin The data collector and all the jobs it uses to interact with the engine are only used from the debugger plugin. We can as well move them there. Change-Id: Ia48251f08b48c7e1e607b8ae2a3d1de29f80f742 Reviewed-by: Erik Verbruggen --- tests/auto/qml/qv4debugger/qv4debugger.pro | 10 ++++++- tests/auto/qml/qv4debugger/tst_qv4debugger.cpp | 38 ++++++++++++++++---------- 2 files changed, 33 insertions(+), 15 deletions(-) (limited to 'tests/auto') diff --git a/tests/auto/qml/qv4debugger/qv4debugger.pro b/tests/auto/qml/qv4debugger/qv4debugger.pro index 2a318955f3..540cab70e6 100644 --- a/tests/auto/qml/qv4debugger/qv4debugger.pro +++ b/tests/auto/qml/qv4debugger/qv4debugger.pro @@ -2,6 +2,14 @@ CONFIG += testcase TARGET = tst_qv4debugger macx:CONFIG -= app_bundle -SOURCES += tst_qv4debugger.cpp +SOURCES += \ + $$PWD/tst_qv4debugger.cpp \ + $$PWD/../../../../src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp + +HEADERS += \ + $$PWD/../../../../src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h + +INCLUDEPATH += \ + $$PWD/../../../../src/plugins/qmltooling/qmldbg_debugger QT += core-private gui-private qml-private network testlib diff --git a/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp index ac780d272c..ca308a4f49 100644 --- a/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp +++ b/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp @@ -32,6 +32,8 @@ ****************************************************************************/ #include +#include "qv4datacollector.h" + #include #include #include @@ -97,14 +99,14 @@ class TestAgent : public QObject { Q_OBJECT public: - typedef QV4::Debugging::DataCollector::Refs Refs; - typedef QV4::Debugging::DataCollector::Ref Ref; + typedef QV4DataCollector::Refs Refs; + typedef QV4DataCollector::Ref Ref; struct NamedRefs { - NamedRefs(DataCollector *collector = 0): collector(collector) {} + NamedRefs(QV4DataCollector *collector = 0): collector(collector) {} QStringList names; Refs refs; - DataCollector *collector; + QV4DataCollector *collector; int size() const { Q_ASSERT(names.size() == refs.size()); @@ -164,13 +166,14 @@ public slots: m_pauseReason = reason; m_statesWhenPaused << debugger->currentExecutionState(); - { + if (debugger->state() == QV4::Debugging::Debugger::Paused && + debugger->engine()->hasException) { Refs refs; - QV4::Debugging::RefHolder holder(&collector, &refs); - if (debugger->collectThrownValue(&collector)) { - Q_ASSERT(refs.size() > 0); - m_thrownValue = refs.first(); - } + RefHolder holder(&collector, &refs); + ExceptionCollectJob job(debugger->engine(), &collector); + debugger->runInEngine(&job); + Q_ASSERT(refs.size() > 0); + m_thrownValue = refs.first(); } foreach (const TestBreakPoint &bp, m_breakPointsToAddWhenPaused) @@ -180,10 +183,13 @@ public slots: m_stackTrace = debugger->stackTrace(); while (!m_expressionRequests.isEmpty()) { + Q_ASSERT(debugger->state() == QV4::Debugging::Debugger::Paused); ExpressionRequest request = m_expressionRequests.takeFirst(); m_expressionResults << Refs(); RefHolder holder(&collector, &m_expressionResults.last()); - debugger->evaluateExpression(request.frameNr, request.expression, &collector); + ExpressionEvalJob job(debugger->engine(), request.frameNr, request.expression, + &collector); + debugger->runInEngine(&job); } if (m_captureContextInfo) @@ -207,11 +213,15 @@ public: for (int i = 0, ei = m_stackTrace.size(); i != ei; ++i) { m_capturedArguments.append(NamedRefs(&collector)); RefHolder argHolder(&collector, &m_capturedArguments.last().refs); - debugger->collectArgumentsInContext(&collector, &m_capturedArguments.last().names, i); + ArgumentCollectJob argumentsJob(debugger->engine(), &collector, + &m_capturedArguments.last().names, i, 0); + debugger->runInEngine(&argumentsJob); m_capturedLocals.append(NamedRefs(&collector)); RefHolder localHolder(&collector, &m_capturedLocals.last().refs); - debugger->collectLocalsInContext(&collector, &m_capturedLocals.last().names, i); + LocalCollectJob localsJob(debugger->engine(), &collector, + &m_capturedLocals.last().names, i, 0); + debugger->runInEngine(&localsJob); } } @@ -234,7 +244,7 @@ public: QVector m_capturedArguments; QVector m_capturedLocals; qint64 m_thrownValue; - QV4::Debugging::DataCollector collector; + QV4DataCollector collector; struct ExpressionRequest { QString expression; -- cgit v1.2.3