Author: ki.stfu Date: Thu Jun 25 06:10:12 2015 New Revision: 240631 URL: http://llvm.org/viewvc/llvm-project?rev=240631&view=rev Log: Expand result with type char* to string in -data-evaluate-expression
Summary: Expand result with type char* to string in -data-evaluate-expression. was: ``` -data-evaluate-expression str ^done,value="0x00007fffffffece0" ``` now: ``` -data-evaluate-expression str ^done,value="0x00007fffffffece0 \"hello\"" ``` All tests pass on Linux. Test Plan: ./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi Reviewers: abidh Reviewed By: abidh Subscribers: lldb-commits, dawn, abidh Differential Revision: http://reviews.llvm.org/D10728 Modified: lldb/trunk/test/tools/lldb-mi/data/TestMiData.py lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp Modified: lldb/trunk/test/tools/lldb-mi/data/TestMiData.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/tools/lldb-mi/data/TestMiData.py?rev=240631&r1=240630&r2=240631&view=diff ============================================================================== --- lldb/trunk/test/tools/lldb-mi/data/TestMiData.py (original) +++ lldb/trunk/test/tools/lldb-mi/data/TestMiData.py Thu Jun 25 06:10:12 2015 @@ -122,7 +122,7 @@ class MiDataTestCase(lldbmi_testcase.MiT self.expect(r'\*stopped,reason="breakpoint-hit"') # Get address of local char[] - self.runCmd('-data-evaluate-expression &array') + self.runCmd('-data-evaluate-expression "(void *)&array"') self.expect(r'\^done,value="0x[0-9a-f]+"') addr = int(self.child.after.split('"')[1], 16) size = 4 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=240631&r1=240630&r2=240631&view=diff ============================================================================== --- lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py (original) +++ lldb/trunk/test/tools/lldb-mi/variable/TestMiVar.py Thu Jun 25 06:10:12 2015 @@ -111,7 +111,7 @@ class MiVarTestCase(lldbmi_testcase.MiTe # Print argument "argv[0]" self.runCmd("-data-evaluate-expression \"argv[0]\"") - self.expect("\^done,value=\"0x[0-9a-f]+\"") + self.expect("\^done,value=\"0x[0-9a-f]+ \\\\\\\".*?%s\\\\\\\"\"" % self.myexe) self.runCmd("-var-create var6 * \"argv[0]\"") self.expect("\^done,name=\"var6\",numchild=\"1\",value=\"0x[0-9a-f]+ \\\\\\\".*?%s\\\\\\\"\",type=\"const char \*\",thread-id=\"1\",has_more=\"0\"" % self.myexe) self.runCmd("-var-evaluate-expression var6") Modified: lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp?rev=240631&r1=240630&r2=240631&view=diff ============================================================================== --- lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp (original) +++ lldb/trunk/tools/lldb-mi/MICmdCmdData.cpp Thu Jun 25 06:10:12 2015 @@ -125,7 +125,7 @@ CMICmdCmdDataEvaluateExpression::Execute lldb::SBValue value = frame.EvaluateExpression(rExpression.c_str()); if (!value.IsValid() || value.GetError().Fail()) value = frame.FindVariable(rExpression.c_str()); - const CMICmnLLDBUtilSBValue utilValue(value); + const CMICmnLLDBUtilSBValue utilValue(value, true); if (!utilValue.IsValid() || utilValue.IsValueUnknown()) { m_bEvaluatedExpression = false; @@ -153,12 +153,7 @@ CMICmdCmdDataEvaluateExpression::Execute { const lldb::ValueType eValueType = value.GetValueType(); MIunused(eValueType); - m_strValue = utilValue.GetValue(); - CMIUtilString strCString; - if (CMICmnLLDBProxySBValue::GetCString(value, strCString)) - { - m_strValue += CMIUtilString::Format(" '%s'", strCString.c_str()); - } + m_strValue = utilValue.GetValue().Escape().AddSlashes(); return MIstatus::success; } _______________________________________________ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits