diff options
author | Andrew Cagney <cagney@redhat.com> | 2003-04-05 03:56:00 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2003-04-05 03:56:00 +0000 |
commit | 7df05f2b91d56bb6305625b73f0180187f4d66ff (patch) | |
tree | 1324776c46a3b9c6841ec10bcf2821e9f233c1d1 /gdb/frame-unwind.h | |
parent | 1ec9c9cf1f514c90a4b5291e9476c028d74eab03 (diff) | |
download | gdb-7df05f2b91d56bb6305625b73f0180187f4d66ff.zip gdb-7df05f2b91d56bb6305625b73f0180187f4d66ff.tar.gz gdb-7df05f2b91d56bb6305625b73f0180187f4d66ff.tar.bz2 |
2003-04-04 Andrew Cagney <cagney@redhat.com>
* frame.c (get_prev_frame): Do not call frame_type_from_pc. Set
the frame's type from the unwinder.
(get_frame_type): Map UNKNOWN_FRAME onto NORMAL_FRAME.
(create_new_frame, legacy_get_prev_frame): When the unwinder's
type isn't UNKNOWN_FRAME, initalize "type" from the unwinder.
(get_frame_base_address): Use get_frame_type.
(get_frame_locals_address, get_frame_args_address): Ditto.
(legacy_saved_regs_unwinder): Set the type to UNKNOWN_TYPE.
* frame.h (enum frame_type): Add UNKNOWN_FRAME.
(struct frame_info): Add comment explaining why the frame contains
a "type" field.
* dummy-frame.c (dummy_frame_unwind): Set the type to DUMMY_FRAME.
* d10v-tdep.c (d10v_frame_unwind): Set the type to NORMAL_FRAME.
* sentinel-frame.c (sentinel_frame_unwinder): Set the type to
NORMAL_FRAME.
* frame-unwind.h: Include "frame.h".
(struct frame_unwind): Add "type" field.
* Makefile.in (frame_unwind_h): Add $(frame_h).
Diffstat (limited to 'gdb/frame-unwind.h')
-rw-r--r-- | gdb/frame-unwind.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h index 099f9de..ad1efdf 100644 --- a/gdb/frame-unwind.h +++ b/gdb/frame-unwind.h @@ -28,6 +28,8 @@ struct frame_unwind; struct gdbarch; struct regcache; +#include "frame.h" /* For enum frame_type. */ + /* Return the frame unwind methods for the function that contains PC, or NULL if this this unwinder can't handle this frame. */ @@ -128,7 +130,9 @@ typedef void (frame_prev_register_ftype) (struct frame_info *next_frame, struct frame_unwind { - /* Should the frame's type go here? */ + /* The frame's type. Should this instead be a collection of + predicates that test the frame for various attributes? */ + enum frame_type type; /* Should an attribute indicating the frame's address-in-block go here? */ frame_this_id_ftype *this_id; |