diff options
Diffstat (limited to 'tools/lldb-mi/MICmdCmdData.cpp')
-rw-r--r-- | tools/lldb-mi/MICmdCmdData.cpp | 9 |
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; |