diff options
| author | Aurindam Jana <aurindam.jana@nokia.com> | 2011-12-22 18:43:09 +0100 |
|---|---|---|
| committer | Aurindam Jana <aurindam.jana@nokia.com> | 2012-01-09 10:53:19 +0100 |
| commit | 641716bee3d91663de5d660c22fd27ffafaeeaa0 (patch) | |
| tree | 89806db5eecabeac055e5838cec7d6d6207c3d0b /src/plugins/debugger/qml/qscriptdebuggerclient.cpp | |
| parent | bcd9bbb6f5ff93895148db7d0db606aaebaebd76 (diff) | |
| download | qt-creator-641716bee3d91663de5d660c22fd27ffafaeeaa0.tar.gz | |
QmlDebugging: Implement RunToLine capability
Change-Id: I153c30310ac318d2de8b9a96c6d1e7f80439d306
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src/plugins/debugger/qml/qscriptdebuggerclient.cpp')
| -rw-r--r-- | src/plugins/debugger/qml/qscriptdebuggerclient.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp index 19d6fe9285..f8ad0c944f 100644 --- a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp +++ b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp @@ -183,6 +183,17 @@ void QScriptDebuggerClient::executeStepI() sendMessage(reply); } +void QScriptDebuggerClient::executeRunToLine(const ContextData &data) +{ + JSAgentBreakpointData bp; + bp.fileUrl = QUrl::fromLocalFile(data.fileName).toString().toUtf8(); + bp.lineNumber = data.lineNumber; + bp.functionName = "TEMPORARY"; + d->breakpoints.insert(bp); + synchronizeBreakpoints(); + continueInferior(); +} + void QScriptDebuggerClient::continueInferior() { QByteArray reply; @@ -398,6 +409,7 @@ void QScriptDebuggerClient::messageReceived(const QByteArray &data) if (ideStackFrames.size() && ideStackFrames.back().function == QLatin1String("<global>")) ideStackFrames.takeLast(); + d->engine->stackHandler()->setFrames(ideStackFrames); d->engine->watchHandler()->beginCycle(); @@ -478,6 +490,18 @@ void QScriptDebuggerClient::messageReceived(const QByteArray &data) } } + QList<JSAgentBreakpointData> breakpoints(d->breakpoints.toList()); + foreach (const JSAgentBreakpointData &data, breakpoints) { + if (data.fileUrl == QUrl::fromLocalFile(file).toString().toUtf8() && + data.lineNumber == line && + data.functionName == "TEMPORARY") { + breakpoints.removeOne(data); + d->breakpoints = JSAgentBreakpoints::fromList(breakpoints); + synchronizeBreakpoints(); + break; + } + } + d->logReceiveMessage(logString); } |
