tberghammer added inline comments.

================
Comment at: source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp:665
@@ +664,3 @@
+
+    stl_summary_flags.SetDontShowChildren(true);
+    AddCXXSummary(cpp_category_sp, 
lldb_private::formatters::LibStdcppSmartPointerSummaryProvider,
----------------
granata.enrico wrote:
> tberghammer wrote:
> > granata.enrico wrote:
> > > Is there any reason to hide the children for a type that you provide 
> > > synthetic children for?
> > Without hiding the children the content of the shard_ptr will be displayed 
> > 2 times. Once in the first line as part of the summary and then 2nd time as 
> > a children. I think it is cleaner if we display the value only once but it 
> > can make it more difficult to access to the content of the shared pointer.
> > 
> > If you think displaying the children is better then I am happy with that 
> > option too.
> > 
> > The 2 possible output for a type Foo:
> > 
> > ```
> > (std::shared_ptr<Foo>) f = Foo @ 0x0000000000606118 {
> >   _M_ptr = 0x0000000000606118
> > }
> > ```
> > ```
> > (std::shared_ptr<Foo>) f = Foo @ 0x0000000000606118
> > ```
> > 
> > The 2 possible output for an std::string:
> > ```
> > (std::shared_ptr<std::basic_string<char, std::char_traits<char>, 
> > std::allocator<char> > >) s = "123456" {
> >   _M_ptr = "123456"
> > }
> > ```
> > ```
> > (std::shared_ptr<std::basic_string<char, std::char_traits<char>, 
> > std::allocator<char> > >) s = "123456"
> > ```
> Oh, I see. Yeah, I had to solve a similar problem for Swift Optionals.
> 
> Essentially, you're discovering that for shared_ptr<T>, T can have 
> combinations of values, summaries, synthetic values, ...
> 
> Unfortunately right now there is no automated formatter for the concept of a 
> box<T> that handles all those intricacies automatically for you. It would be 
> a nice thing to add, but it's probably beyond the scope of your change
> 
> Feel free to pick your favorite solution for now, and I'll try to get to a 
> universal box formatter at some point.
I decided to remove it to be in sync with the libc++ shared_ptr/weak_ptr 
summary provider but having a formatter for box<T> would be nice but I am not 
sure what should be the exact semantic of it. If you won't beat me with it I 
might take a look in the future but don't know when I will have time for it.


http://reviews.llvm.org/D21984



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to