This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: RFC: next/finish/etc -vs- exceptions
- From: Tom Tromey <tromey at redhat dot com>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 10 Jun 2009 10:50:18 -0600
- Subject: Re: RFC: next/finish/etc -vs- exceptions
- References: <m37hzzzgk7.fsf@fleche.redhat.com> <20090610161204.GB25703@adacore.com>
- Reply-to: tromey at redhat dot com
>>>>> "Joel" == Joel Brobecker <brobecker@adacore.com> writes:
Joel> I can't seem to find the time to look at this in more details while
Joel> I'm at the summit, but I always find myself wondering whether it might
Joel> have been possible to use the breakpoint_ops structure rather than
Joel> introducing a couple of breakpoint kinds... I glanced quickly at the
Joel> patch, and I don't think this is the case in this particular instance,
Joel> but did you also look at this option, eventually ruling it out?
Actually I just looked at the longjmp code and did something very
similar. I will take a look at doing this.
It would be nice if we had a flag day and simply converted everything
to breakpoint_ops. That's usually the best way to ensure that new
code is written the "right" way (gcc has also had some bad experiences
with these incomplete transitions).
Also, I recently realized that the patch computes the CFA incorrectly.
Really it ought to always compute the Dwarf CFA. I didn't see a nice
way to do that; if you have any suggestions...
Joel> The feature itself is really interesting, and I wonder if there might
Joel> be something we can do for Ada as well. As far as I know, there is no
Joel> hook just yet, but maybe we can have it added as well. After all, I know
Joel> a few people who work on the Ada compiler ;-).
I was under the impression that Ada used longjmp to implement
exceptions, and so the existing longjmp support should work. (Modulo
the odd bug or two -- I'm not sure if Pedro's fix for the glibc
pointer mangling went in or not.)
Tom