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: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org, tromey at redhat dot com
- Cc: Joel Brobecker <brobecker at adacore dot com>
- Date: Wed, 10 Jun 2009 18:06:31 +0100
- Subject: Re: RFC: next/finish/etc -vs- exceptions
- References: <m37hzzzgk7.fsf@fleche.redhat.com> <20090610161204.GB25703@adacore.com> <m3hbyoghit.fsf@fleche.redhat.com>
On Wednesday 10 June 2009 17:50:18, Tom Tromey wrote:
> 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.)
It did not. Our longjmp support on glibc is still broken.
I assume that exceptions have a property that raw longjmp doesn't,
which is what makes stepping over longjmp complicated --- they never
switch to alternate stacks? That was one reason why comparing
frame/stack pointers with inner_than kind of comparisions is
verboten (to know when the longjmp/exception is all inner to the
step/next and can be ignored, for example). That, and frames
crossing architectures, like on Cell. I did spot one such comparision
by a quick look at the patch, but I don't know if it OK to do so in
your case or not. I assume other people who know more about
frames and unwinders than me can provide better input there. :-)
--
Pedro Alves