This is the mail archive of the
gdb-patches@sourceware.cygnus.com
mailing list for the GDB project.
Re: [RFA] Fix stepping over signal trampoline.
- To: Mark Kettenis <kettenis at wins dot uva dot nl>
- Subject: Re: [RFA] Fix stepping over signal trampoline.
- From: Andrew Cagney <ac131313 at cygnus dot com>
- Date: Tue, 02 May 2000 17:06:19 +1000
- CC: gdb-patches at sourceware dot cygnus dot com, ezannoni at cygnus dot com
- Organization: Cygnus Solutions
- References: <200005010027.e410Ria00298@delius.kettenis.local>
Mark Kettenis wrote:
>
> The following patch makes doing a "next" from the last line in a
> signal handler work on Linux/i386. What happens is that when we step
> out of a signal handler we will end up at the first line of the signal
> trampoline (which is only used in the return path). GDB (mis)detects
> this as a subroutine call. This isn't that bad since stepping over
> the signal handler isn't such a bad idea. However to make this work
> we have to ignore step_frame_address. If we don't do that, we'll
> typically run until the end of the program is reached. Or if there is
> a breakpoint at the point where we return from the signal trampoline,
> the program might event segfault.
>
> Mark
>
> 2000-05-01 Mark Kettenis <kettenis@gnu.org>
>
> * infrun.c (handle_inferior_event): When doing a "next", and
> stepping out of a signal handler into its calling trampoline
> ignore the value of step_frame_address.
> (step_over_function): Only modify step_resume_breakpoint->frame if
> the value of step_frame_address is non-zero.
I think this one is ok.
Andrew