aboutsummaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MICmdCmdData.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmdCmdData.cpp')
-rw-r--r--tools/lldb-mi/MICmdCmdData.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/tools/lldb-mi/MICmdCmdData.cpp b/tools/lldb-mi/MICmdCmdData.cpp
index 0e0cf12b0080..a46fb5563ce7 100644
--- a/tools/lldb-mi/MICmdCmdData.cpp
+++ b/tools/lldb-mi/MICmdCmdData.cpp
@@ -117,7 +117,8 @@ CMICmdCmdDataEvaluateExpression::Execute()
lldb::SBFrame frame = thread.GetSelectedFrame();
lldb::SBValue value = frame.EvaluateExpression(rExpression.c_str());
- if (!value.IsValid() || value.GetError().Fail())
+ m_Error = value.GetError();
+ if (!value.IsValid() || m_Error.Fail())
value = frame.FindVariable(rExpression.c_str());
const CMICmnLLDBUtilSBValue utilValue(value, true);
if (!utilValue.IsValid() || utilValue.IsValueUnknown())
@@ -177,8 +178,10 @@ CMICmdCmdDataEvaluateExpression::Acknowledge()
m_miResultRecord = miRecordResult;
return MIstatus::success;
}
-
- const CMICmnMIValueConst miValueConst("Could not evaluate expression");
+ CMIUtilString mi_error_msg = "Could not evaluate expression";
+ if (const char* err_msg = m_Error.GetCString())
+ mi_error_msg = err_msg;
+ const CMICmnMIValueConst miValueConst(mi_error_msg.Escape(true));
const CMICmnMIValueResult miValueResult("msg", miValueConst);
const CMICmnMIResultRecord miRecordResult(m_cmdData.strMiCmdToken, CMICmnMIResultRecord::eResultClass_Error, miValueResult);
m_miResultRecord = miRecordResult;