mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 20:14:06 +08:00
2003-06-08 Andrew Cagney <cagney@redhat.com>
* frame.c (get_prev_frame): Remove reference to frame_args_address_correct in comments. * frame-base.c (default_frame_args_address): Delete code conditional on FRAME_ARGS_ADDRESS_CORRECT. * vax-tdep.c (vax_frame_args_address_correct): Delete. (vax_frame_args_address): Merge in vax_frame_args_address_correct. * config/vax/tm-vax.h (FRAME_ARGS_ADDRESS_CORRECT): Delete (vax_frame_args_address_correct): Delete declaration. Index: doc/ChangeLog 2003-06-08 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Delete documentation on FRAME_ARGS_ADDRESS_CORRECT.
This commit is contained in:
parent
a9e5fdc219
commit
25e3a86bb1
@ -1,3 +1,14 @@
|
||||
2003-06-08 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* frame.c (get_prev_frame): Remove reference to
|
||||
frame_args_address_correct in comments.
|
||||
* frame-base.c (default_frame_args_address): Delete code
|
||||
conditional on FRAME_ARGS_ADDRESS_CORRECT.
|
||||
* vax-tdep.c (vax_frame_args_address_correct): Delete.
|
||||
(vax_frame_args_address): Merge in vax_frame_args_address_correct.
|
||||
* config/vax/tm-vax.h (FRAME_ARGS_ADDRESS_CORRECT): Delete
|
||||
(vax_frame_args_address_correct): Delete declaration.
|
||||
|
||||
2003-06-08 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* gdbarch.sh (UNWIND_SP): Add.
|
||||
|
@ -24,8 +24,4 @@
|
||||
|
||||
#define GDB_MULTI_ARCH GDB_MULTI_ARCH_PARTIAL
|
||||
|
||||
/* XXXJRT not yet under gdbarch control */
|
||||
#define FRAME_ARGS_ADDRESS_CORRECT(fi) vax_frame_args_address_correct ((fi))
|
||||
extern CORE_ADDR vax_frame_args_address_correct (struct frame_info *);
|
||||
|
||||
#endif /* TM_VAX_H */
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-06-08 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* gdbint.texinfo (Target Architecture Definition): Delete
|
||||
documentation on FRAME_ARGS_ADDRESS_CORRECT.
|
||||
|
||||
2003-06-08 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* gdbint.texinfo (Target Architecture Definition): Document
|
||||
|
@ -3233,10 +3233,6 @@ the direction of stack growth.
|
||||
|
||||
By default, no frame based stack alignment is performed.
|
||||
|
||||
@item FRAME_ARGS_ADDRESS_CORRECT
|
||||
@findex FRAME_ARGS_ADDRESS_CORRECT
|
||||
See @file{stack.c}.
|
||||
|
||||
@item DEPRECATED_FRAME_CHAIN(@var{frame})
|
||||
@findex DEPRECATED_FRAME_CHAIN
|
||||
Given @var{frame}, return a pointer to the calling frame.
|
||||
|
@ -46,17 +46,7 @@ static CORE_ADDR
|
||||
default_frame_args_address (struct frame_info *next_frame, void **this_cache)
|
||||
{
|
||||
struct frame_info *this_frame = get_prev_frame (next_frame);
|
||||
/* FRAME_ARGS_ADDRESS_CORRECT is just like FRAME_ARGS_ADDRESS except
|
||||
that if it is unsure about the answer, it returns 0 instead of
|
||||
guessing (this happens on the VAX and i960, for example).
|
||||
|
||||
On most machines, we never have to guess about the args address,
|
||||
so FRAME_ARGS_ADDRESS{,_CORRECT} are the same. */
|
||||
#ifdef FRAME_ARGS_ADDRESS_CORRECT
|
||||
return FRAME_ARGS_ADDRESS_CORRECT (this_frame);
|
||||
#else
|
||||
return FRAME_ARGS_ADDRESS (this_frame);
|
||||
#endif
|
||||
}
|
||||
|
||||
const struct frame_base default_frame_base = {
|
||||
|
10
gdb/frame.c
10
gdb/frame.c
@ -1944,11 +1944,11 @@ get_prev_frame (struct frame_info *this_frame)
|
||||
Doing this makes it possible for the user to examine a frame that
|
||||
has an invalid frame ID.
|
||||
|
||||
The very old VAX frame_args_address_correct() method noted: [...]
|
||||
For the sake of argument, suppose that the stack is somewhat
|
||||
trashed (which is one reason that "info frame" exists). So,
|
||||
return 0 (indicating we don't know the address of the arglist) if
|
||||
we don't know what frame this frame calls. */
|
||||
Some very old VAX code noted: [...] For the sake of argument,
|
||||
suppose that the stack is somewhat trashed (which is one reason
|
||||
that "info frame" exists). So, return 0 (indicating we don't
|
||||
know the address of the arglist) if we don't know what frame this
|
||||
frame calls. */
|
||||
|
||||
/* Link it in. */
|
||||
this_frame->prev = prev_frame;
|
||||
|
@ -165,15 +165,6 @@ vax_frame_saved_pc (struct frame_info *frame)
|
||||
CORE_ADDR
|
||||
vax_frame_args_address_correct (struct frame_info *frame)
|
||||
{
|
||||
/* Cannot find the AP register value directly from the FP value. Must
|
||||
find it saved in the frame called by this one, or in the AP register
|
||||
for the innermost frame. However, there is no way to tell the
|
||||
difference between the innermost frame and a frame for which we
|
||||
just don't know the frame that it called (e.g. "info frame 0x7ffec789").
|
||||
For the sake of argument, suppose that the stack is somewhat trashed
|
||||
(which is one reason that "info frame" exists). So, return 0 (indicating
|
||||
we don't know the address of the arglist) if we don't know what frame
|
||||
this frame calls. */
|
||||
if (get_next_frame (frame))
|
||||
return (read_memory_integer (get_frame_base (get_next_frame (frame)) + 8, 4));
|
||||
|
||||
@ -183,13 +174,21 @@ vax_frame_args_address_correct (struct frame_info *frame)
|
||||
static CORE_ADDR
|
||||
vax_frame_args_address (struct frame_info *frame)
|
||||
{
|
||||
/* In most of GDB, getting the args address is too important to
|
||||
just say "I don't know". This is sometimes wrong for functions
|
||||
that aren't on top of the stack, but c'est la vie. */
|
||||
/* In most of GDB, getting the args address is too important to just
|
||||
say "I don't know". This is sometimes wrong for functions that
|
||||
aren't on top of the stack, but c'est la vie. */
|
||||
if (get_next_frame (frame))
|
||||
return (read_memory_integer (get_frame_base (get_next_frame (frame)) + 8, 4));
|
||||
|
||||
return (read_register (VAX_AP_REGNUM));
|
||||
/* Cannot find the AP register value directly from the FP value.
|
||||
Must find it saved in the frame called by this one, or in the AP
|
||||
register for the innermost frame. However, there is no way to
|
||||
tell the difference between the innermost frame and a frame for
|
||||
which we just don't know the frame that it called (e.g. "info
|
||||
frame 0x7ffec789"). For the sake of argument, suppose that the
|
||||
stack is somewhat trashed (which is one reason that "info frame"
|
||||
exists). So, return 0 (indicating we don't know the address of
|
||||
the arglist) if we don't know what frame this frame calls. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static CORE_ADDR
|
||||
|
Loading…
Reference in New Issue
Block a user