2008-10-26 Michael Snyder <msnyder@vmware.com>
* infrun.c (handle_inferior_event): Handle dynamic symbol resolution in reverse.
This commit is contained in:
parent
dc960f064b
commit
3067f6e5f1
2 changed files with 21 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-10-26 Michael Snyder <msnyder@vmware.com>
|
||||
|
||||
* infrun.c (handle_inferior_event): Handle dynamic symbol
|
||||
resolution in reverse.
|
||||
|
||||
2008-10-25 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* infrun.c: Minor comment reformatting.
|
||||
|
|
16
gdb/infrun.c
16
gdb/infrun.c
|
@ -3393,6 +3393,22 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n");
|
|||
if (execution_direction == EXEC_REVERSE)
|
||||
{
|
||||
struct symtab_and_line sr_sal;
|
||||
|
||||
if (ecs->stop_func_start == 0
|
||||
&& in_solib_dynsym_resolve_code (stop_pc))
|
||||
{
|
||||
/* Stepped into runtime loader dynamic symbol
|
||||
resolution code. Since we're in reverse,
|
||||
we have already backed up through the runtime
|
||||
loader and the dynamic function. This is just
|
||||
the trampoline (jump table).
|
||||
|
||||
Just keep stepping, we'll soon be home.
|
||||
*/
|
||||
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);
|
||||
|
|
Loading…
Reference in a new issue