diff options
Diffstat (limited to 'src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp')
-rw-r--r-- | src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp index 6524a1ff28..dcf1fe8335 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp @@ -602,8 +602,11 @@ public: virtual void handleRequest() { - QV4Debugger *debugger = debugService->debuggerAgent.pausedDebugger(); + QJsonObject arguments = req.value(QStringLiteral("arguments")).toObject(); + QString expression = arguments.value(QStringLiteral("expression")).toString(); + int frame = -1; + QV4Debugger *debugger = debugService->debuggerAgent.pausedDebugger(); if (!debugger) { const QList<QV4Debugger *> &debuggers = debugService->debuggerAgent.debuggers(); if (debuggers.count() > 1) { @@ -614,12 +617,10 @@ public: return; } debugger = debuggers.first(); + } else { + frame = arguments.value(QStringLiteral("frame")).toInt(0); } - QJsonObject arguments = req.value(QStringLiteral("arguments")).toObject(); - QString expression = arguments.value(QStringLiteral("expression")).toString(); - const int frame = arguments.value(QStringLiteral("frame")).toInt(0); - ExpressionEvalJob job(debugger->engine(), frame, expression, debugger->collector()); debugger->runInEngine(&job); if (job.hasExeption()) { |