This is the mail archive of the frysk@sourceware.org mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Roadmap beginnings


>>>>> "Ian" == Ian Lance Taylor <iant@google.com> writes:

Tom> I'm looking around a bit to see if I can find specifics of what
Tom> is wrong.

Ian> I don't know if this counts as "expression parsing," but the most
Ian> obvious problems that I encounter are the difficulties in working with
Ian> STL objects.  Given "std::vector<T> v", I can't do "print v[0]".
Ian> Given "std::vector<T>::iterator p", I can't do "print *p".  That is
Ian> minimal required functionality for good C++ debugging.  This needs to
Ian> work smoothly for STL types and for user defined types.

Thanks.  I remember you mentioning this at the Summit, but I'd
forgotten when sending the email.

Ian> A related problem, which I don't know how to solve, is that many
Ian> simple C++ accessors get inlined, and are not available when
Ian> debugging.  This makes it vastly more difficult to debug optimized C++
Ian> programs (indeed, this problem is more serious for me in practice than
Ian> the debuginfo problems discussed at the summit).

I have seen a few ideas kicked around:

1. Always emit the accessors out-of-line.

2. Emit DWARF code corresponding to the accessors.

3. Write Python code equivalent to the accessors and arrange for the
   debugger to invoke it in the appropriate situations.

#1 seems like the obvious choice, aside from code size problems.  Are
those severe?

Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]