aboutsummaryrefslogtreecommitdiff
path: root/gdb/frame.h
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2003-04-05 03:56:00 +0000
committerAndrew Cagney <cagney@redhat.com>2003-04-05 03:56:00 +0000
commit7df05f2b91d56bb6305625b73f0180187f4d66ff (patch)
tree1324776c46a3b9c6841ec10bcf2821e9f233c1d1 /gdb/frame.h
parent1ec9c9cf1f514c90a4b5291e9476c028d74eab03 (diff)
downloadgdb-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.h')
-rw-r--r--gdb/frame.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/gdb/frame.h b/gdb/frame.h
index 231aaad..9870fc2 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -225,6 +225,11 @@ extern int frame_relative_level (struct frame_info *fi);
enum frame_type
{
+ /* The frame's type hasn't yet been defined. This is a catch-all
+ for legacy code that uses really strange technicques, such as
+ deprecated_set_frame_type, to set the frame's type. New code
+ should not use this value. */
+ UNKNOWN_FRAME,
/* A true stack frame, created by the target program during normal
execution. */
NORMAL_FRAME,
@@ -367,6 +372,10 @@ struct frame_info
int level;
/* The frame's type. */
+ /* FIXME: cagney/2003-04-02: Should instead be returning
+ ->unwind->type. Unfortunatly, legacy code is still explicitly
+ setting the type using the method deprecated_set_frame_type.
+ Eliminate that method and this field can be eliminated. */
enum frame_type type;
/* For each register, address of where it was saved on entry to