This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] OSF/1 - "next" over prologueless function call
- From: Joel Brobecker <brobecker at gnat dot com>
- To: Andrew Cagney <cagney at gnu dot org>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Wed, 3 Dec 2003 16:55:21 -0800
- Subject: Re: [RFA] OSF/1 - "next" over prologueless function call
- References: <20031202042646.GW1186@gnat.com> <3FCD6468.9020708@gnu.org>
> See my recent comments further down in that file. I think GDB should be
> using:
>
> frame_id_unwind(current_frame) == frame_id_from_before_stepi
>
> to determine if it did a step into a function. What happens if that is
> used?
Sounds like a good idea, almost obvious actually :-). I tried the
following change on osf1 and x86-linux without any regression, and it
does solve the problem on osf1.
However, I tried it on sparc-solaris with the gdb-6.0 sources because
I knew this target hasn't transitioned to the new frame framework.
It doesn't look like GDB is liking this change there (I've got a lot of
timeouts in call-ar-st). I am currently retrying on the head right now,
hoping the testsuite completes in a reasonable amount of time.
--- infrun.c 25 Nov 2003 16:01:36 -0000 1.122
+++ infrun.c 3 Dec 2003 19:24:07 -0000
@@ -2473,6 +2473,8 @@ process_event_stop_test:
}
if (((stop_pc == ecs->stop_func_start /* Quick test */
+ || frame_id_eq (get_frame_id (get_prev_frame (get_current_frame ())),
+ step_frame_id)
|| in_prologue (stop_pc, ecs->stop_func_start))
&& !IN_SOLIB_RETURN_TRAMPOLINE (stop_pc, ecs->stop_func_name))
|| IN_SOLIB_CALL_TRAMPOLINE (stop_pc, ecs->stop_func_name)
Stay tuned.
--
Joel