2009-06-14 Hui Zhu <teawater@gmail.com>

Michael Snyder  <msnyder@vmware.com>

	* infrun.c (handle_inferior_event): Reverse-next through
          trampoline.
This commit is contained in:
Michael Snyder 2009-06-18 23:55:57 +00:00
parent 31410e843b
commit 6373d11969
2 changed files with 18 additions and 4 deletions

View File

@ -4,6 +4,9 @@
* infrun.c (handle_inferior_event): Improve reverse stepping
through function epilogue.
* infrun.c (handle_inferior_event): Reverse-next through
trampoline.
2009-06-18 Paul Pluzhnikov <ppluzhnikov@google.com>
* dwarf2-frame.c (struct comp_unit): Use bfd_size_type for

View File

@ -3777,10 +3777,21 @@ infrun: not switching back to stepped thread, it has vanished\n");
keep_going (ecs);
return;
}
/* Normal (staticly linked) function call return. */
init_sal (&sr_sal);
sr_sal.pc = ecs->stop_func_start;
insert_step_resume_breakpoint_at_sal (sr_sal, null_frame_id);
if (gdbarch_skip_trampoline_code(current_gdbarch,
get_current_frame (),
stop_pc))
{
/* We are in a function call trampoline.
Keep stepping backward to get to the caller. */
ecs->event_thread->stepping_over_breakpoint = 1;
}
else
{
/* Normal function call return (static or dynamic). */
init_sal (&sr_sal);
sr_sal.pc = ecs->stop_func_start;
insert_step_resume_breakpoint_at_sal (sr_sal, null_frame_id);
}
}
else
insert_step_resume_breakpoint_at_caller (frame);