* i386-linux-nat.c (i386_linux_saved_pc_after_call): Lost in the
authorJim Blandy <jimb@codesourcery.com>
Thu, 16 Mar 2000 23:53:35 +0000 (23:53 +0000)
committerJim Blandy <jimb@codesourcery.com>
Thu, 16 Mar 2000 23:53:35 +0000 (23:53 +0000)
merge; reinstated.

gdb/ChangeLog
gdb/i386-linux-nat.c

index 824a40ea6b9f9b904025a368f61e505bd253db81..7aefcdf56a7572fa1d63aba275769fd87c38053c 100644 (file)
@@ -1,10 +1,11 @@
 2000-03-16  Jim Blandy  <jimb@redhat.com>
 
+        * 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  <jimb@redhat.com>
-
        * 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
index d5350dc001248eae3814cbdb6c2963395c7ef834..bf5e821a27936e9a22f882006b1b0f702d4eac61 100644 (file)
@@ -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);
+}
+
 \f
 /* Register that we are able to handle Linux ELF core file formats.  */