--- infrun.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) --- a/infrun.c +++ b/infrun.c @@ -3708,7 +3708,12 @@ infrun: not switching back to stepped th ecs->event_thread->step_frame_id) && (frame_id_eq (frame_unwind_id (get_current_frame ()), ecs->event_thread->step_frame_id) - || execution_direction == EXEC_REVERSE)) + || (execution_direction == EXEC_REVERSE + && ecs->event_thread->step_frame_id.stack_addr_p + && get_frame_id (get_current_frame ()).stack_addr_p + && !gdbarch_inner_than (current_gdbarch, + ecs->event_thread->step_frame_id.stack_addr, + get_frame_id (get_current_frame()).stack_addr)))) { CORE_ADDR real_stop_pc;