From 25e3a86bb10e57d021b5dd8d9ddc6fe78c3c5c42 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Mon, 9 Jun 2003 02:10:35 +0000 Subject: 2003-06-08 Andrew Cagney * 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 * gdbint.texinfo (Target Architecture Definition): Delete documentation on FRAME_ARGS_ADDRESS_CORRECT. --- gdb/ChangeLog | 11 +++++++++++ gdb/config/vax/tm-vax.h | 4 ---- gdb/doc/ChangeLog | 5 +++++ gdb/doc/gdbint.texinfo | 4 ---- gdb/frame-base.c | 10 ---------- gdb/frame.c | 10 +++++----- gdb/vax-tdep.c | 27 +++++++++++++-------------- 7 files changed, 34 insertions(+), 37 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 78ff45e..14907da 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,16 @@ 2003-06-08 Andrew Cagney + * 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 + * gdbarch.sh (UNWIND_SP): Add. * gdbarch.h, gdbarch.c: Re-generate. * frame.c (frame_sp_unwind): New function. diff --git a/gdb/config/vax/tm-vax.h b/gdb/config/vax/tm-vax.h index 22e60a0..f1ed146 100644 --- a/gdb/config/vax/tm-vax.h +++ b/gdb/config/vax/tm-vax.h @@ -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 */ diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 653c565..6bf5b42 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,5 +1,10 @@ 2003-06-08 Andrew Cagney + * gdbint.texinfo (Target Architecture Definition): Delete + documentation on FRAME_ARGS_ADDRESS_CORRECT. + +2003-06-08 Andrew Cagney + * gdbint.texinfo (Target Architecture Definition): Document "unwind_sp". Cross reference "unwind_sp" and TARGET_READ_SP. diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo index 75444ee..d21be22 100644 --- a/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo @@ -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. diff --git a/gdb/frame-base.c b/gdb/frame-base.c index 34e1523..ad4689d 100644 --- a/gdb/frame-base.c +++ b/gdb/frame-base.c @@ -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 = { diff --git a/gdb/frame.c b/gdb/frame.c index b7a8785..a87e522 100644 --- a/gdb/frame.c +++ b/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; diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c index 71eb697..bccbd50 100644 --- a/gdb/vax-tdep.c +++ b/gdb/vax-tdep.c @@ -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 -- cgit v1.1