[Lldb-commits] [PATCH] D26124: [LLDB-MI] Escape MI output in a more consistent manner
Ilia K via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Sun Nov 27 05:58:22 PST 2016
ki.stfu requested changes to this revision.
ki.stfu added a comment.
This revision now requires changes to proceed.
@enlight , thanks for giving a chance to review it, and sorry that it took to long from my side.
Most of these changes look good to me, especially removing of meaningless temporal variables during construction of Result values. But I can't agree with that:
> I've also removed the spacing code from CMICmnMIValueTuple and CMICmnMIValueResult, it was only misused to format composite values in CMICmnLLDBUtilSBValue::GetCompositeValue(). The format of composite values isn't specified by the GDB-MI spec, and as such these values shouldn't be built using CMICmnMIValueTuple, CMICmnMIValueResult, and CMICmnMIValueConst.
I'm not sure about extra spaces in `tuple` or `result` records (`vbUseSpacing` opt in `CMICmnMIValueResult` and `CMICmnMIValueTuple` respectively), but regarding `CMICmnLLDBUtilSBValue::GetCompositeValue` I'd like to leave "as is". Construction of tuples by hands (see my inline comment) looks terrible for me while using of `CMICmnMIValueTuple` looked very naturally.
Regarding your note about the format of composite values, the[[ https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Output-Syntax.html#GDB_002fMI-Output-Syntax | GDB-MI spec ]] clearly says that:
result ==> variable "=" value
variable ==> string
value ==> const | tuple | list
const ==> c-string
tuple ==> "{}" | "{" result ( "," result )* "}"
So, the aggregates are those whose root values are represented by tuples.
================
Comment at: tools/lldb-mi/MICmnLLDBUtilSBValue.cpp:197-208
+ if (vwrCompositeValue.back() != '{')
+ vwrCompositeValue += ", ";
+ vwrCompositeValue += CMIUtilString::Format("%s = %s",
+ utilMember.GetName().c_str(),
+ value.c_str());
} else {
+ if (vwrCompositeValue.back() != '{')
----------------
here
Repository:
rL LLVM
https://reviews.llvm.org/D26124
More information about the lldb-commits
mailing list