diff options
author | Aurindam Jana <aurindam.jana@nokia.com> | 2011-11-07 14:58:45 +0100 |
---|---|---|
committer | Aurindam Jana <aurindam.jana@nokia.com> | 2011-11-08 14:47:05 +0100 |
commit | 727dd1b167ffd49effa75d4640385f9b4f6b4d74 (patch) | |
tree | e32e0b669fc67f93be8647c7261c9ea50979970f /src/plugins/debugger/qml/qmlv8debuggerclient.cpp | |
parent | bd0b030cb03be3bd771528877a7c3d71029be737 (diff) | |
download | qt-creator-727dd1b167ffd49effa75d4640385f9b4f6b4d74.tar.gz |
QmlV8DebuggerClient: Evaluate Expression
V8 engine may return an anonymous event for Evaluation of an expression
instead of a response, if the expression has syntax error. This fix
handles this particular case.
Change-Id: Ic89252b04eb4d6f7e6b0b2e03067f031f1f446ed
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src/plugins/debugger/qml/qmlv8debuggerclient.cpp')
-rw-r--r-- | src/plugins/debugger/qml/qmlv8debuggerclient.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp index 12b618ad50..bfc0a0b666 100644 --- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp +++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp @@ -1235,6 +1235,22 @@ void QmlV8DebuggerClient::messageReceived(const QByteArray &data) d->requestListBreakpoints = true; } + //Sometimes we do not get event type! + //This is most probably due to a wrong eval expression. + //Redirect output to console. + if (eventType.isEmpty()) { + bool success = resp.value(_("success")).toBool(); + QVariantMap map; + map.insert(_(TYPE), QVariant(_("string"))); + map.insert(_(VALUE), resp.value(_("message"))); + //Since there is no sequence value, best estimate is + //last sequence value + updateEvaluationResult(d->sequence, success, QVariant(map), QVariant()); + if (!isV8Running + && d->debugServiceState == QmlV8DebuggerClient::ProcessingRequestState) + d->debugServiceState = QmlV8DebuggerClient::WaitingForRequestState; + } + if (!isV8Running && d->debugServiceState == QmlV8DebuggerClient::RunningState) d->debugServiceState = QmlV8DebuggerClient::WaitingForRequestState; |