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
7 changed files with 34 additions and 37 deletions
|
@ -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>
|
2003-06-08 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
* gdbarch.sh (UNWIND_SP): Add.
|
* gdbarch.sh (UNWIND_SP): Add.
|
||||||
|
|
|
@ -24,8 +24,4 @@
|
||||||
|
|
||||||
#define GDB_MULTI_ARCH GDB_MULTI_ARCH_PARTIAL
|
#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 */
|
#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>
|
2003-06-08 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
* gdbint.texinfo (Target Architecture Definition): Document
|
* gdbint.texinfo (Target Architecture Definition): Document
|
||||||
|
|
|
@ -3233,10 +3233,6 @@ the direction of stack growth.
|
||||||
|
|
||||||
By default, no frame based stack alignment is performed.
|
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})
|
@item DEPRECATED_FRAME_CHAIN(@var{frame})
|
||||||
@findex DEPRECATED_FRAME_CHAIN
|
@findex DEPRECATED_FRAME_CHAIN
|
||||||
Given @var{frame}, return a pointer to the calling frame.
|
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)
|
default_frame_args_address (struct frame_info *next_frame, void **this_cache)
|
||||||
{
|
{
|
||||||
struct frame_info *this_frame = get_prev_frame (next_frame);
|
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);
|
return FRAME_ARGS_ADDRESS (this_frame);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct frame_base default_frame_base = {
|
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
|
Doing this makes it possible for the user to examine a frame that
|
||||||
has an invalid frame ID.
|
has an invalid frame ID.
|
||||||
|
|
||||||
The very old VAX frame_args_address_correct() method noted: [...]
|
Some very old VAX code noted: [...] For the sake of argument,
|
||||||
For the sake of argument, suppose that the stack is somewhat
|
suppose that the stack is somewhat trashed (which is one reason
|
||||||
trashed (which is one reason that "info frame" exists). So,
|
that "info frame" exists). So, return 0 (indicating we don't
|
||||||
return 0 (indicating we don't know the address of the arglist) if
|
know the address of the arglist) if we don't know what frame this
|
||||||
we don't know what frame this frame calls. */
|
frame calls. */
|
||||||
|
|
||||||
/* Link it in. */
|
/* Link it in. */
|
||||||
this_frame->prev = prev_frame;
|
this_frame->prev = prev_frame;
|
||||||
|
|
|
@ -165,15 +165,6 @@ vax_frame_saved_pc (struct frame_info *frame)
|
||||||
CORE_ADDR
|
CORE_ADDR
|
||||||
vax_frame_args_address_correct (struct frame_info *frame)
|
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))
|
if (get_next_frame (frame))
|
||||||
return (read_memory_integer (get_frame_base (get_next_frame (frame)) + 8, 4));
|
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
|
static CORE_ADDR
|
||||||
vax_frame_args_address (struct frame_info *frame)
|
vax_frame_args_address (struct frame_info *frame)
|
||||||
{
|
{
|
||||||
/* In most of GDB, getting the args address is too important to
|
/* In most of GDB, getting the args address is too important to just
|
||||||
just say "I don't know". This is sometimes wrong for functions
|
say "I don't know". This is sometimes wrong for functions that
|
||||||
that aren't on top of the stack, but c'est la vie. */
|
aren't on top of the stack, but c'est la vie. */
|
||||||
if (get_next_frame (frame))
|
if (get_next_frame (frame))
|
||||||
return (read_memory_integer (get_frame_base (get_next_frame (frame)) + 8, 4));
|
return (read_memory_integer (get_frame_base (get_next_frame (frame)) + 8, 4));
|
||||||
|
/* Cannot find the AP register value directly from the FP value.
|
||||||
return (read_register (VAX_AP_REGNUM));
|
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
|
static CORE_ADDR
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue