diff options
author | Mark Kettenis <kettenis@gnu.org> | 2000-03-08 22:34:19 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2000-03-08 22:34:19 +0000 |
commit | 0cb2bb5aa10418303595ced3f94f550e3eb97aac (patch) | |
tree | 93c9ac861d3bcbe46cacbac77f83da45bd319b63 /gdb/i386-tdep.c | |
parent | ac3ce1b42f4e9e4f6d00861c8dd651b99357ef05 (diff) | |
download | gdb-0cb2bb5aa10418303595ced3f94f550e3eb97aac.tar.gz |
2000-03-08 Mark Kettenis <kettenis@gnu.org>
* i386-tdep.c (i386_linux_saved_pc_after_call): New function.
* config/i386/tm-linux.h (SAVED_PC_AFTER_CALL): Define to call
i386_linux_saved_pc_after_call.
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r-- | gdb/i386-tdep.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 10011f671b6..e940e2ff3c2 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -1024,6 +1024,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); +} + #endif /* I386_LINUX_SIGTRAMP */ #ifdef STATIC_TRANSFORM_NAME |