2003-04-05 Andrew Cagney <cagney@redhat.com>
* frame.c (get_frame_id): Update comment. (legacy_get_prev_frame): Update comment. * gdbarch.sh: Delete check for EXTRA_FRAME_INFO. * gdbarch.h: Regenerate. * config/sparc/tm-sparc.h (EXTRA_FRAME_INFO): Delete. * frame.h: Delete #ifdef EXTRA_FRAME_INFO code.
This commit is contained in:
parent
6fba50029c
commit
5e5592e692
|
@ -1,3 +1,12 @@
|
|||
2003-04-05 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* frame.c (get_frame_id): Update comment.
|
||||
(legacy_get_prev_frame): Update comment.
|
||||
* gdbarch.sh: Delete check for EXTRA_FRAME_INFO.
|
||||
* gdbarch.h: Regenerate.
|
||||
* config/sparc/tm-sparc.h (EXTRA_FRAME_INFO): Delete.
|
||||
* frame.h: Delete #ifdef EXTRA_FRAME_INFO code.
|
||||
|
||||
2003-04-05 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* stack.c (print_frame_info): Use get_frame_pc.
|
||||
|
|
|
@ -406,53 +406,6 @@ extern CORE_ADDR sparc_pc_adjust (CORE_ADDR);
|
|||
/* DEPRECATED_FRAME_CHAIN takes a frame's nominal address and produces
|
||||
the frame's chain-pointer. */
|
||||
|
||||
/* In the case of the Sun 4, the frame-chain's nominal address
|
||||
is held in the frame pointer register.
|
||||
|
||||
On the Sun4, the frame (in %fp) is %sp for the previous frame.
|
||||
From the previous frame's %sp, we can find the previous frame's
|
||||
%fp: it is in the save area just above the previous frame's %sp.
|
||||
|
||||
If we are setting up an arbitrary frame, we'll need to know where
|
||||
it ends. Hence the following. This part of the frame cache
|
||||
structure should be checked before it is assumed that this frame's
|
||||
bottom is in the stack pointer.
|
||||
|
||||
If there isn't a frame below this one, the bottom of this frame is
|
||||
in the stack pointer.
|
||||
|
||||
If there is a frame below this one, and the frame pointers are
|
||||
identical, it's a leaf frame and the bottoms are the same also.
|
||||
|
||||
Otherwise the bottom of this frame is the top of the next frame.
|
||||
|
||||
The bottom field is misnamed, since it might imply that memory from
|
||||
bottom to frame contains this frame. That need not be true if
|
||||
stack frames are allocated in different segments (e.g. some on a
|
||||
stack, some on a heap in the data segment).
|
||||
|
||||
GCC 2.6 and later can generate ``flat register window'' code that
|
||||
makes frames by explicitly saving those registers that need to be
|
||||
saved. %i7 is used as the frame pointer, and the frame is laid out
|
||||
so that flat and non-flat calls can be intermixed freely within a
|
||||
program. Unfortunately for GDB, this means it must detect and
|
||||
record the flatness of frames.
|
||||
|
||||
Since the prologue in a flat frame also tells us where fp and pc
|
||||
have been stashed (the frame is of variable size, so their location
|
||||
is not fixed), it's convenient to record them in the frame info. */
|
||||
|
||||
#define EXTRA_FRAME_INFO \
|
||||
CORE_ADDR bottom; \
|
||||
int in_prologue; \
|
||||
int flat; \
|
||||
/* Following fields only relevant for flat frames. */ \
|
||||
CORE_ADDR pc_addr; \
|
||||
CORE_ADDR fp_addr; \
|
||||
/* Add this to ->frame to get the value of the stack pointer at the */ \
|
||||
/* time of the register saves. */ \
|
||||
int sp_offset;
|
||||
|
||||
/* We need to override DEPRECATED_GET_SAVED_REGISTER so that we can
|
||||
deal with the way outs change into ins in different frames. */
|
||||
|
||||
|
|
|
@ -65,9 +65,7 @@ get_frame_id (struct frame_info *fi)
|
|||
fi->unwind->this_id (fi->next, &fi->prologue_cache, &fi->id);
|
||||
fi->id_p = 1;
|
||||
/* FIXME: cagney/2002-12-18: Instead of this hack, should only
|
||||
store the frame ID in PREV_FRAME. Unfortunatly, some
|
||||
architectures (HP/UX) still reply on EXTRA_FRAME_INFO and,
|
||||
hence, still poke at the "struct frame_info" object directly. */
|
||||
store the frame ID in PREV_FRAME. */
|
||||
fi->frame = fi->id.base;
|
||||
}
|
||||
return frame_id_build (fi->frame, get_frame_pc (fi));
|
||||
|
@ -1150,9 +1148,7 @@ legacy_get_prev_frame (struct frame_info *this_frame)
|
|||
frame base, in the frame object. */
|
||||
|
||||
/* FIXME: cagney/2002-12-18: Instead of this hack, should only
|
||||
store the frame ID in PREV_FRAME. Unfortunatly, some
|
||||
architectures (HP/UX) still reply on EXTRA_FRAME_INFO and,
|
||||
hence, still poke at the "struct frame_info" object directly. */
|
||||
store the frame ID in PREV_FRAME. */
|
||||
/* FIXME: cagney/2003-04-04: Once ->frame is eliminated, this
|
||||
assignment can go. */
|
||||
prev->frame = prev->id.base;
|
||||
|
|
|
@ -320,7 +320,7 @@ extern void frame_pop (struct frame_info *frame);
|
|||
|
||||
/* Describe the saved registers of a frame. */
|
||||
|
||||
#if defined (EXTRA_FRAME_INFO) || defined (FRAME_FIND_SAVED_REGS)
|
||||
#if defined (FRAME_FIND_SAVED_REGS)
|
||||
/* XXXX - deprecated */
|
||||
struct frame_saved_regs
|
||||
{
|
||||
|
@ -388,13 +388,6 @@ struct frame_info
|
|||
initialized by DEPRECATED_FRAME_INIT_SAVED_REGS(). */
|
||||
CORE_ADDR *saved_regs; /*NUM_REGS + NUM_PSEUDO_REGS*/
|
||||
|
||||
#ifdef EXTRA_FRAME_INFO
|
||||
/* XXXX - deprecated */
|
||||
/* Anything extra for this structure that may have been defined
|
||||
in the machine dependent files. */
|
||||
EXTRA_FRAME_INFO
|
||||
#endif
|
||||
|
||||
/* Anything extra for this structure that may have been defined
|
||||
in the machine dependent files. */
|
||||
/* Allocated by frame_extra_info_zalloc () which is called /
|
||||
|
|
|
@ -55,12 +55,6 @@ extern struct gdbarch *current_gdbarch;
|
|||
/* If any of the following are defined, the target wasn't correctly
|
||||
converted. */
|
||||
|
||||
#if GDB_MULTI_ARCH
|
||||
#if defined (EXTRA_FRAME_INFO)
|
||||
#error "EXTRA_FRAME_INFO: replaced by struct frame_extra_info"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if GDB_MULTI_ARCH
|
||||
#if defined (FRAME_FIND_SAVED_REGS)
|
||||
#error "FRAME_FIND_SAVED_REGS: replaced by DEPRECATED_FRAME_INIT_SAVED_REGS"
|
||||
|
|
|
@ -820,12 +820,6 @@ extern struct gdbarch *current_gdbarch;
|
|||
/* If any of the following are defined, the target wasn't correctly
|
||||
converted. */
|
||||
|
||||
#if GDB_MULTI_ARCH
|
||||
#if defined (EXTRA_FRAME_INFO)
|
||||
#error "EXTRA_FRAME_INFO: replaced by struct frame_extra_info"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if GDB_MULTI_ARCH
|
||||
#if defined (FRAME_FIND_SAVED_REGS)
|
||||
#error "FRAME_FIND_SAVED_REGS: replaced by DEPRECATED_FRAME_INIT_SAVED_REGS"
|
||||
|
|
Loading…
Reference in New Issue