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;  | 
