================
@@ -87,7 +87,8 @@ void CommandObjectDWIMPrint::DoExecute(StringRef command,
DumpValueObjectOptions dump_options = m_varobj_options.GetAsDumpOptions(
m_expr_options.m_verbosity, m_format_options.GetFormat());
- dump_options.SetHideRootName(suppress_result);
+ dump_options.SetHideRootName(suppress_result)
+ .SetExpandPointerTypeFlags(lldb::eTypeIsObjC);
----------------
kastiglione wrote:
Here's my thinking: most of the time, I want top level pointers to be expanded
(as c++ references are). But each of the C based language has its
considerations.
For ObjC, I think all top level objects should be expanded, and I can't think
of any counter arguments.
For C++, I also want top level pointers to be expanded – however raw pointers
are less common. In C++ I would like to see top level smart pointers be
expanded.
For C, I am less sure what, if anything, to do about top level pointers. First,
I don't write a lot of C and have less experience to form opinions. Second, in
C a pointer might be just as likely to be a buffer/array, and expanding a
buffer as a single pointer would be misleading.
Coming back to your question: I would like to see C++ raw pointers expanded,
and hopefully smart pointers too. I would leave C pointers alone. I guess I
need to raise this on the forums, and find some buy in. As part of that, we can
determine should pointer expansion be specific to `dwim-print`, or should
some/all of it apply to `frame var`/`expr` too.
https://github.com/llvm/llvm-project/pull/117500
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits