diff options
author | Mark Kettenis <kettenis@gnu.org> | 2001-04-16 13:03:15 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2001-04-16 13:03:15 +0000 |
commit | c833a37e77135d95d62ca932c30df30d09c7a006 (patch) | |
tree | 285c6170accef3a84dd4219c98133fd701af987f /gdb/i386-tdep.c | |
parent | d4424adaef11212e113de58b2557aa4810c41840 (diff) | |
download | gdb-c833a37e77135d95d62ca932c30df30d09c7a006.zip gdb-c833a37e77135d95d62ca932c30df30d09c7a006.tar.gz gdb-c833a37e77135d95d62ca932c30df30d09c7a006.tar.bz2 |
* i386-tdep.c (i386_frame_chain): New function.
* config/i386/tm-i386.h (FRAME_CHAIN): Redefine in terms of
i386_frame_chain.
(i386_frame_chain): New prototype.
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r-- | gdb/i386-tdep.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 49cc796..f654d6f 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -349,6 +349,22 @@ i386_get_frame_setup (CORE_ADDR pc) return (-1); } +/* Return the chain-pointer for FRAME. In the case of the i386, the + frame's nominal address is the address of a 4-byte word containing + the calling frame's address. */ + +CORE_ADDR +i386_frame_chain (struct frame_info *frame) +{ + if (frame->signal_handler_caller) + return frame->frame; + + if (! inside_entry_file (frame->pc)) + return read_memory_unsigned_integer (frame->frame, 4); + + return 0; +} + /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ |