From: Jim Blandy Date: Thu, 16 Mar 2000 23:53:35 +0000 (+0000) Subject: * i386-linux-nat.c (i386_linux_saved_pc_after_call): Lost in the X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=17f9defb0b0670c472e58af60cfa96ba4c3eaafb;p=deliverable%2Fbinutils-gdb.git * i386-linux-nat.c (i386_linux_saved_pc_after_call): Lost in the merge; reinstated. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 824a40ea6b..7aefcdf56a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,10 +1,11 @@ 2000-03-16 Jim Blandy + * i386-linux-nat.c (i386_linux_saved_pc_after_call): Lost in the + merge; reinstated. + * solib.c (current_sos): Be more careful about freeing the new so_list node if an error occurs. -2000-03-16 Jim Blandy - * i386-tdep.c (LINUX_SIGTRAMP_INSN0, LINUX_SIGTRAMP_OFFSET0, LINUX_SIGTRAMP_INSN1, LINUX_SIGTRAMP_OFFSET1, LINUX_SIGTRAMP_INSN2, LINUX_SIGTRAMP_OFFSET2, linux_sigtramp_code, @@ -15,8 +16,9 @@ i386_linux_rt_sigtramp_start, i386_linux_in_sigtramp, i386_linux_sigcontext_addr, LINUX_SIGCONTEXT_PC_OFFSET, i386_linux_sigtramp_saved_pc, LINUX_SIGCONTEXT_SP_OFFSET, - i386_linux_sigtramp_saved_sp): Deleted. These all implement - Linux-specific signal trampoline detection, and should be moved to... + i386_linux_sigtramp_saved_sp): Deleted. These all implement + Linux-specific signal trampoline detection, and should be moved + to... * i386-linux-nat.c: ... here. * config/i386/tm-linux.h (I386_LINUX_SIGTRAMP): No need to define this any more, since we're not enabling OS-specific code in a diff --git a/gdb/i386-linux-nat.c b/gdb/i386-linux-nat.c index d5350dc001..bf5e821a27 100644 --- a/gdb/i386-linux-nat.c +++ b/gdb/i386-linux-nat.c @@ -1289,6 +1289,17 @@ i386_linux_sigtramp_saved_sp (struct frame_info *frame) return read_memory_integer (addr + LINUX_SIGCONTEXT_SP_OFFSET, 4); } +/* Immediately after a function call, return the saved pc. */ + +CORE_ADDR +i386_linux_saved_pc_after_call (struct frame_info *frame) +{ + if (frame->signal_handler_caller) + return i386_linux_sigtramp_saved_pc (frame); + + return read_memory_integer (read_register (SP_REGNUM), 4); +} + /* Register that we are able to handle Linux ELF core file formats. */