[Lldb-commits] [lldb] r237094 - Show error message from failed evaluation when doing -var-create

Ilia K ki.stfu at gmail.com
Mon May 11 23:15:16 PDT 2015


Author: ki.stfu
Date: Tue May 12 01:15:16 2015
New Revision: 237094

URL: http://llvm.org/viewvc/llvm-project?rev=237094&view=rev
Log:
Show error message from failed evaluation when doing -var-create

Summary:
When -var-create fails, we will now show the error message from the failed evaluation if it is available.

Patch from chuckr at microsoft.com

Test Plan: I fixed the MiVarTestCase.test_lldbmi_eval test to expect the new error string. All MI tests passing on OS X.

Reviewers: abidh, ChuckR

Subscribers: greggm, lldb-commits, paulmaybee

Differential Revision: http://reviews.llvm.org/D9691

Modified:
    lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py
    lldb/trunk/tools/lldb-mi/MICmdCmdVar.cpp

Modified: lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py?rev=237094&r1=237093&r2=237094&view=diff
==============================================================================
--- lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py (original)
+++ lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py Tue May 12 01:15:16 2015
@@ -32,7 +32,7 @@ class MiVarTestCase(lldbmi_testcase.MiTe
 
         # Print non-existant variable
         self.runCmd("-var-create var1 * undef")
-        self.expect("\^error,msg=\"Failed to create variable object for 'undef'\"")
+        self.expect("\^error,msg=\"error: error: use of undeclared identifier \'undef\'\s+error: 1 errors parsing expression\"")
         self.runCmd("-data-evaluate-expression undef")
         self.expect("\^error,msg=\"Could not evaluate expression\"")
 

Modified: lldb/trunk/tools/lldb-mi/MICmdCmdVar.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdCmdVar.cpp?rev=237094&r1=237093&r2=237094&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-mi/MICmdCmdVar.cpp (original)
+++ lldb/trunk/tools/lldb-mi/MICmdCmdVar.cpp Tue May 12 01:15:16 2015
@@ -208,6 +208,12 @@ CMICmdCmdVarCreate::Execute(void)
         CMICmnLLDBDebugSessionInfoVarObj varObj(rStrExpression, m_strVarName, value);
         m_strValue = varObj.GetValueFormatted();
     }
+    else 
+    {
+        lldb::SBStream err;
+        if (value.GetError().GetDescription(err))
+            m_strValue = err.GetData();
+    }
 
     return MIstatus::success;
 }
@@ -248,7 +254,10 @@ CMICmdCmdVarCreate::Acknowledge(void)
         return MIstatus::success;
     }
 
-    const CMICmnMIValueConst miValueConst(CMIUtilString::Format(MIRSRC(IDS_CMD_ERR_VARIABLE_CREATION_FAILED), m_strExpression.c_str()));
+    CMIUtilString strErrMsg(m_strValue);
+    if (m_strValue.empty())
+        strErrMsg = CMIUtilString::Format(MIRSRC(IDS_CMD_ERR_VARIABLE_CREATION_FAILED), m_strExpression.c_str());
+    const CMICmnMIValueConst miValueConst(strErrMsg);
     CMICmnMIValueResult miValueResult("msg", miValueConst);
     const CMICmnMIResultRecord miRecordResult(m_cmdData.strMiCmdToken, CMICmnMIResultRecord::eResultClass_Error, miValueResult);
     m_miResultRecord = miRecordResult;





More information about the lldb-commits mailing list