summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2017-03-29 08:34:30 +0200
committerDavid Schulz <david.schulz@qt.io>2017-03-29 07:05:28 +0000
commitd0ee83768ca25b1a9e09313b1259b64f33c07ec2 (patch)
tree362a35632352043a1cc95292a827c3272a71414e
parentcd2a70c86788b478e51f9bb18de2483d4bb2d1ec (diff)
downloadqt-creator-d0ee83768ca25b1a9e09313b1259b64f33c07ec2.tar.gz
Debugger: Reset expression syntax after evaluate
Fixes setting breakpoints after using python dumpers. Change-Id: Ifd917526e91c73f82f943645e1d1d11790369179 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/libs/qtcreatorcdbext/pycdbextmodule.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libs/qtcreatorcdbext/pycdbextmodule.cpp b/src/libs/qtcreatorcdbext/pycdbextmodule.cpp
index 4d16671c02..4ca11a777d 100644
--- a/src/libs/qtcreatorcdbext/pycdbextmodule.cpp
+++ b/src/libs/qtcreatorcdbext/pycdbextmodule.cpp
@@ -102,9 +102,13 @@ static PyObject *cdbext_parseAndEvaluate(PyObject *, PyObject *args) // -> Value
if (debugPyCdbextModule)
DebugPrint() << "evaluate expression: " << expr;
CIDebugControl *control = ExtensionCommandContext::instance()->control();
+ ULONG oldExpressionSyntax;
+ control->GetExpressionSyntax(&oldExpressionSyntax);
control->SetExpressionSyntax(DEBUG_EXPR_CPLUSPLUS);
DEBUG_VALUE value;
- if (FAILED(control->Evaluate(expr, DEBUG_VALUE_INT64, &value, NULL)))
+ HRESULT hr = control->Evaluate(expr, DEBUG_VALUE_INT64, &value, NULL);
+ control->SetExpressionSyntax(oldExpressionSyntax);
+ if (FAILED(hr))
Py_RETURN_NONE;
return Py_BuildValue("K", value.I64);
}