> On Oct 29, 2014, at 10:59 AM, jing...@apple.com wrote:
> 
> I hadn't seen that.  That looks pretty useful for things like reintroducing 
> the "size" method for std::vectors that hold the size in an easily accessible 
> field, or something else like that.  It involves re-implementing the guts of 
> the library you are patching up in Python using debugger API's so it isn't 
> entirely straight-forward.  Note we already do a similar sort of thing in the 
> data formatters to produce nice summaries and "synthetic children" for std & 
> Foundation types that can avoid running code.  I think gdb also has some 
> formatter infrastructure like this, IIRC, but I haven't used gdb much for a 
> few years now.
> 

It’s called “pretty printers” (but they do both summaries & synthetic 
children): 
https://sourceware.org/gdb/current/onlinedocs/gdb/Pretty-Printing-API.html#Pretty-Printing-API

> Anyway, you'd be hard pressed to use something like these Xmethods to do more 
> science fiction'y things like "I wish that I had std::vector<T> around for 
> some experiment I want to do in the debugger, but the program never used 
> std::vector<T>, please make it for me".  Not sure how often you'd really use 
> that, but the point is that if we had the C++ modules around, we would get it 
> pretty much for free.
> 
> Jim
> 
> 
>> On Oct 29, 2014, at 10:44 AM, Siva Chandra <sivachan...@google.com> wrote:
>> 
>> On Wed, Oct 29, 2014 at 10:33 AM,  <jing...@apple.com> wrote:
>>> And for instance, if we ever get good support for modules in C++,
>>> we could presumably then use that to do things like instantiate template
>>> classes for types that weren't instantiated in the current program, and
>>> other cool'o things like that which would be hard to do with some
>>> hand-built C++ parser, a la gdb.
>> 
>> GDB's solution for such cases currently is XMethods:
>> https://sourceware.org/gdb/current/onlinedocs/gdb/Xmethods-In-Python.html
>> 
>> There are a bunch of XMethods available for container classes in
>> libstdc++: 
>> https://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python/libstdcxx/v6/xmethods.py
> 
> 
> _______________________________________________
> lldb-dev mailing list
> lldb-dev@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Thanks,
- Enrico
📩 egranata@.com ☎️ 27683




_______________________________________________
lldb-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to