diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-11-09 01:16:42 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-11-09 01:16:42 +0000 |
commit | cbafadeb88b139e212f4e453a8f93304c813b2df (patch) | |
tree | 39958aeb28a32b2b09ed71a4eabe0c968b27fc81 /gdb/frame-unwind.h | |
parent | a77a9021ea85cf83d077a32391e682c6320adc88 (diff) | |
download | gdb-cbafadeb88b139e212f4e453a8f93304c813b2df.zip gdb-cbafadeb88b139e212f4e453a8f93304c813b2df.tar.gz gdb-cbafadeb88b139e212f4e453a8f93304c813b2df.tar.bz2 |
2004-11-08 Andrew Cagney <cagney@gnu.org>
* sentinel-frame.c (sentinel_frame_prev_pc): New function.
(sentinel_frame_unwinder): Add the prev_pc method.
* frame.c (frame_pc_unwind): Use the per-frame pc unwinder when
available. Do not handle the sentinel-frame case.
* frame-unwind.h (frame_prev_register_ftype): Define.
(struct frame_unwind): Add prev_pc;
Diffstat (limited to 'gdb/frame-unwind.h')
-rw-r--r-- | gdb/frame-unwind.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h index 12d6dd2..74c0a4a 100644 --- a/gdb/frame-unwind.h +++ b/gdb/frame-unwind.h @@ -118,6 +118,14 @@ typedef void (frame_prev_register_ftype) (struct frame_info *next_frame, CORE_ADDR *addrp, int *realnump, void *valuep); +/* Assuming the frame chain: (outer) prev <-> this <-> next (inner); + use the NEXT frame, and its register unwind method, to return the PREV + frame's program-counter. */ + +typedef CORE_ADDR (frame_prev_pc_ftype) (struct frame_info *next_frame, + void **this_prologue_cache); + + struct frame_unwind { /* The frame's type. Should this instead be a collection of @@ -129,6 +137,7 @@ struct frame_unwind frame_prev_register_ftype *prev_register; const struct frame_data *unwind_data; frame_sniffer_ftype *sniffer; + frame_prev_pc_ftype *prev_pc; }; /* Register a frame unwinder, _prepending_ it to the front of the |