diff options
author | hjk <hjk@theqtcompany.com> | 2015-10-13 16:58:04 +0200 |
---|---|---|
committer | hjk <hjk@theqtcompany.com> | 2015-10-14 13:38:07 +0000 |
commit | 23f3fcbabc4959c5d05d821b25776f6344d9b42b (patch) | |
tree | 30f749073da023dfac58e3216c83275ac5509e56 /src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp | |
parent | 4f3379352a265bab00a7265f85ffc38a9ca4ffe4 (diff) |
QmlDebug: Split QV4::Debugging::Debugger
... into a pure interface and a QV4::Debugging::V4Debugger implementation.
This is in preparation of a second implementation of this interface
to be used with 'native mixed' debugging.
Change-Id: I3078dcfe4bdee392a2d13ef43a55ca993e7b88d8
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Diffstat (limited to 'src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp')
-rw-r--r-- | src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp index 0fb6df7fd2..306c3c4d1a 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp @@ -270,7 +270,7 @@ public: int toFrame = arguments.value(QStringLiteral("toFrame")).toInt(fromFrame + 10); // no idea what the bottom property is for, so we'll ignore it. - QV4::Debugging::Debugger *debugger = debugService->debuggerAgent.firstDebugger(); + QV4::Debugging::V4Debugger *debugger = debugService->debuggerAgent.firstDebugger(); QJsonArray frameArray; QVector<QV4::StackFrame> frames = debugger->stackTrace(toFrame); @@ -307,7 +307,7 @@ public: const int frameNr = arguments.value(QStringLiteral("number")).toInt( debugService->selectedFrame()); - QV4::Debugging::Debugger *debugger = debugService->debuggerAgent.firstDebugger(); + QV4::Debugging::V4Debugger *debugger = debugService->debuggerAgent.firstDebugger(); QVector<QV4::StackFrame> frames = debugger->stackTrace(frameNr + 1); if (frameNr < 0 || frameNr >= frames.size()) { createErrorResponse(QStringLiteral("frame command has invalid frame number")); @@ -340,7 +340,7 @@ public: debugService->selectedFrame()); const int scopeNr = arguments.value(QStringLiteral("number")).toInt(0); - QV4::Debugging::Debugger *debugger = debugService->debuggerAgent.firstDebugger(); + QV4::Debugging::V4Debugger *debugger = debugService->debuggerAgent.firstDebugger(); QVector<QV4::StackFrame> frames = debugger->stackTrace(frameNr + 1); if (frameNr < 0 || frameNr >= frames.size()) { createErrorResponse(QStringLiteral("scope command has invalid frame number")); @@ -398,10 +398,10 @@ public: // decypher the payload: QJsonObject arguments = req.value(QStringLiteral("arguments")).toObject(); - QV4::Debugging::Debugger *debugger = debugService->debuggerAgent.firstDebugger(); + QV4::Debugging::V4Debugger *debugger = debugService->debuggerAgent.firstDebugger(); if (arguments.empty()) { - debugger->resume(QV4::Debugging::Debugger::FullThrottle); + debugger->resume(QV4::Debugging::V4Debugger::FullThrottle); } else { QJsonObject arguments = req.value(QStringLiteral("arguments")).toObject(); QString stepAction = arguments.value(QStringLiteral("stepaction")).toString(); @@ -410,11 +410,11 @@ public: qWarning() << "Step count other than 1 is not supported."; if (stepAction == QStringLiteral("in")) { - debugger->resume(QV4::Debugging::Debugger::StepIn); + debugger->resume(QV4::Debugging::V4Debugger::StepIn); } else if (stepAction == QStringLiteral("out")) { - debugger->resume(QV4::Debugging::Debugger::StepOut); + debugger->resume(QV4::Debugging::V4Debugger::StepOut); } else if (stepAction == QStringLiteral("next")) { - debugger->resume(QV4::Debugging::Debugger::StepOver); + debugger->resume(QV4::Debugging::V4Debugger::StepOver); } else { createErrorResponse(QStringLiteral("continue command has invalid stepaction")); return; @@ -506,7 +506,7 @@ public: } // do it: - QV4::Debugging::Debugger *debugger = debugService->debuggerAgent.firstDebugger(); + QV4::Debugging::V4Debugger *debugger = debugService->debuggerAgent.firstDebugger(); GatherSourcesJob job(debugger->engine(), requestSequenceNr()); debugger->runInEngine(&job); @@ -549,8 +549,8 @@ public: virtual void handleRequest() { - QV4::Debugging::Debugger *debugger = debugService->debuggerAgent.firstDebugger(); - if (debugger->state() == QV4::Debugging::Debugger::Paused) { + QV4::Debugging::V4Debugger *debugger = debugService->debuggerAgent.firstDebugger(); + if (debugger->state() == QV4::Debugging::V4Debugger::Paused) { QJsonObject arguments = req.value(QStringLiteral("arguments")).toObject(); QString expression = arguments.value(QStringLiteral("expression")).toString(); const int frame = arguments.value(QStringLiteral("frame")).toInt(0); @@ -621,8 +621,8 @@ void QV4DebugServiceImpl::engineAboutToBeAdded(QQmlEngine *engine) QV4::ExecutionEngine *ee = QV8Engine::getV4(engine->handle()); if (QQmlDebugConnector *server = QQmlDebugConnector::instance()) { if (ee) { - ee->enableDebugger(); - QV4::Debugging::Debugger *debugger = ee->debugger; + QV4::Debugging::V4Debugger *debugger = new QV4::Debugging::V4Debugger(ee); + ee->setDebugger(debugger); debuggerMap.insert(debuggerIndex++, debugger); debuggerAgent.addDebugger(debugger); debuggerAgent.moveToThread(server->thread()); @@ -638,8 +638,9 @@ void QV4DebugServiceImpl::engineAboutToBeRemoved(QQmlEngine *engine) if (engine){ const QV4::ExecutionEngine *ee = QV8Engine::getV4(engine->handle()); if (ee) { - QV4::Debugging::Debugger *debugger = ee->debugger; - typedef QMap<int, QV4::Debugging::Debugger *>::const_iterator DebuggerMapIterator; + QV4::Debugging::V4Debugger *debugger + = static_cast<QV4::Debugging::V4Debugger *>(ee->debugger); + typedef QMap<int, QV4::Debugging::V4Debugger *>::const_iterator DebuggerMapIterator; const DebuggerMapIterator end = debuggerMap.constEnd(); for (DebuggerMapIterator i = debuggerMap.constBegin(); i != end; ++i) { if (i.value() == debugger) { @@ -769,7 +770,7 @@ void QV4DebugServiceImpl::clearHandles(QV4::ExecutionEngine *engine) } QJsonObject QV4DebugServiceImpl::buildFrame(const QV4::StackFrame &stackFrame, int frameNr, - QV4::Debugging::Debugger *debugger) + QV4::Debugging::V4Debugger *debugger) { QV4DataCollector::Ref ref; @@ -787,7 +788,7 @@ QJsonObject QV4DebugServiceImpl::buildFrame(const QV4::StackFrame &stackFrame, i frame[QLatin1String("column")] = stackFrame.column; QJsonArray scopes; - if (debugger->state() == QV4::Debugging::Debugger::Paused) { + if (debugger->state() == QV4::Debugging::V4Debugger::Paused) { RefHolder holder(theCollector.data(), &collectedRefs); bool foundThis = false; ThisCollectJob job(debugger->engine(), theCollector.data(), frameNr, &foundThis); @@ -837,7 +838,7 @@ int QV4DebugServiceImpl::encodeScopeType(QV4::Heap::ExecutionContext::ContextTyp } QJsonObject QV4DebugServiceImpl::buildScope(int frameNr, int scopeNr, - QV4::Debugging::Debugger *debugger) + QV4::Debugging::V4Debugger *debugger) { QJsonObject scope; @@ -845,7 +846,7 @@ QJsonObject QV4DebugServiceImpl::buildScope(int frameNr, int scopeNr, RefHolder holder(theCollector.data(), &collectedRefs); theCollector->collectScope(&object, debugger, frameNr, scopeNr); - if (debugger->state() == QV4::Debugging::Debugger::Paused) { + if (debugger->state() == QV4::Debugging::V4Debugger::Paused) { QVector<QV4::Heap::ExecutionContext::ContextType> scopeTypes = QV4DataCollector::getScopeTypes(debugger->engine(), frameNr); scope[QLatin1String("type")] = encodeScopeType(scopeTypes[scopeNr]); |