[RFA] OSF/1 - "next" over prologueless function call
Thu Dec 4 01:49:00 GMT 2003
>> See my recent comments further down in that file. I think GDB should be
>> 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
> 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.
(only took 15 years to realise how "obvious" it was :-)
> 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.
You can use legacy_frame_p for differentiating old and new code.
Hmm, is "stop_pc == ecs->stop_func_start" a valid test, what happens if
the program is at 1: and there's a next?
1: goto foo
Hmm, is in_prologue() adding value when frame_id always works? Unless
it's being used to handle stepping through a prologue?
More information about the Gdb-patches