This is the mail archive of the
archer@sourceware.org
mailing list for the Archer project.
Re: Tasks (exception round-up)
- From: Phil Muldoon <pmuldoon at redhat dot com>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: Project Archer <archer at sourceware dot org>
- Date: Tue, 29 Jul 2008 16:19:17 +0100
- Subject: Re: Tasks (exception round-up)
- References: <m363qtg0ey.fsf@fleche.redhat.com>
Tom Tromey wrote:
* Exceptions. Look at the existing longjmp stuff, come up with an
estimate for the new work.
Can you elaborate a little more on this. I was hoping it would become
clearer as I investigated.
The only issue I have encountered is attempting to step in the catch
exception handler code causes GDB to lose control of the inferior in
certain circumstances:
See:
http://sourceware.org/ml/archer/2008-q3/msg00037.html
http://sourceware.org/ml/archer/2008-q3/msg00038.html
Though this I am guessing a stepping/debug-info bug? Stepping when there
is debug-info available works ok.
Also look at the current state of the
various "catch" commands, maybe look though gnats to see if anything
is known to be broken
I've only been able to get catch throw and catch catch to work with C++.
Try to provide arguments to either returns a junk argument message to be
returned.
catch throw foo and catch catch foo with named exceptions would totally
rock. I can attempt to estimate the work there, if needed. I would like
them, would it be a generally useful thing for others?
Another nit is the catch catch and catch throw breakpoint is in the
libstdc++ code, not in the inferior throw foo or catch foo code. This is
personally not useful; I've no interest in the libstdc++ code and beyond
a libstdc++ developer I'm not sure someone else would. Daniel noted that
this had been hacked on a bit, but breaks Eclipse (and I guess by
extension) other clients.
There are several other long-term outstanding issues:
- If you call a function interactively (I guess via inferior function
calls) and that function raises an exception, control may not be
returned at the end of that function. (And I guess control not returned
until a signal is delivered or another random breakpoint encountered).
- You cannot install an exception handler, or raise an exception in an
interactive session.
I have not tested these yet - they may be already fixed and this is
outdated info. I'll attempt to call and cause an exception to trigger in
an inferior function call next.
Regards
Phil