2004-08-01 Andrew Cagney <cagney@gnu.org>
* frame.h (deprecated_frame_xmalloc_with_cleanup) (frame_saved_regs_zalloc, frame_extra_info_zalloc) (get_frame_extra_info, deprecated_get_frame_saved_regs): Delete. * stack.c (frame_info): Delete references to DEPRECATED_FRAME_INIT_SAVED_REGS and deprecated_get_frame_saved_regs. * frame.c (struct frame_info): Delete saved_regs and extra_info. (frame_pc_unwind): Do not use DEPRECATED_FRAME_SAVED_PC. (frame_register): Do not use DEPRECATED_GET_SAVED_REGISTER. (frame_unwind_register_signed) (frame_unwind_register_unsigned) (frame_unwind_unsigned_register): Use register_size. (create_new_frame): Do not use DEPRECATED_INIT_EXTRA_FRAME_INFO. (deprecated_frame_xmalloc_with_cleanup) (frame_saved_regs_zalloc, frame_extra_info_zalloc) (get_frame_extra_info, deprecated_get_frame_saved_regs): Delete.
This commit is contained in:
parent
03d363a145
commit
5bc602c771
4 changed files with 25 additions and 135 deletions
|
@ -1,5 +1,22 @@
|
|||
2004-08-01 Andrew Cagney <cagney@gnu.org>
|
||||
|
||||
* frame.h (deprecated_frame_xmalloc_with_cleanup)
|
||||
(frame_saved_regs_zalloc, frame_extra_info_zalloc)
|
||||
(get_frame_extra_info, deprecated_get_frame_saved_regs): Delete.
|
||||
* stack.c (frame_info): Delete references to
|
||||
DEPRECATED_FRAME_INIT_SAVED_REGS and
|
||||
deprecated_get_frame_saved_regs.
|
||||
* frame.c (struct frame_info): Delete saved_regs and extra_info.
|
||||
(frame_pc_unwind): Do not use DEPRECATED_FRAME_SAVED_PC.
|
||||
(frame_register): Do not use DEPRECATED_GET_SAVED_REGISTER.
|
||||
(frame_unwind_register_signed)
|
||||
(frame_unwind_register_unsigned)
|
||||
(frame_unwind_unsigned_register): Use register_size.
|
||||
(create_new_frame): Do not use DEPRECATED_INIT_EXTRA_FRAME_INFO.
|
||||
(deprecated_frame_xmalloc_with_cleanup)
|
||||
(frame_saved_regs_zalloc, frame_extra_info_zalloc)
|
||||
(get_frame_extra_info, deprecated_get_frame_saved_regs): Delete.
|
||||
|
||||
* sh-tdep.c (sh_gdbarch_init): Disable call to sh64_gdbarch_init.
|
||||
* config/sh/nbsd.mt (TDEPFILES): Remove sh64-tdep.o.
|
||||
* config/sh/linux.mt (TDEPFILES): Remove sh64-tdep.o.
|
||||
|
|
115
gdb/frame.c
115
gdb/frame.c
|
@ -66,22 +66,6 @@ struct frame_info
|
|||
moment leave this as speculation. */
|
||||
int level;
|
||||
|
||||
/* For each register, address of where it was saved on entry to the
|
||||
frame, or zero if it was not saved on entry to this frame. This
|
||||
includes special registers such as pc and fp saved in special
|
||||
ways in the stack frame. The SP_REGNUM is even more special, the
|
||||
address here is the sp for the previous frame, not the address
|
||||
where the sp was saved. */
|
||||
/* Allocated by frame_saved_regs_zalloc () which is called /
|
||||
initialized by DEPRECATED_FRAME_INIT_SAVED_REGS(). */
|
||||
CORE_ADDR *saved_regs; /*NUM_REGS + NUM_PSEUDO_REGS*/
|
||||
|
||||
/* Anything extra for this structure that may have been defined in
|
||||
the machine dependent files. */
|
||||
/* Allocated by frame_extra_info_zalloc () which is called /
|
||||
initialized by DEPRECATED_INIT_EXTRA_FRAME_INFO */
|
||||
struct frame_extra_info *extra_info;
|
||||
|
||||
/* The frame's low-level unwinder and corresponding cache. The
|
||||
low-level unwinder is responsible for unwinding register values
|
||||
for the previous frame. The low-level unwind methods are
|
||||
|
@ -434,14 +418,6 @@ frame_pc_unwind (struct frame_info *this_frame)
|
|||
global register cache. The assumption is dangerous. */
|
||||
pc = read_pc ();
|
||||
}
|
||||
else if (DEPRECATED_FRAME_SAVED_PC_P ())
|
||||
{
|
||||
/* FIXME: cagney/2003-03-06: Old code, but not a sentinel
|
||||
frame. Do like was always done. Note that this method,
|
||||
unlike unwind_pc(), tries to handle all the different
|
||||
frame cases directly. It fails. */
|
||||
pc = DEPRECATED_FRAME_SAVED_PC (this_frame);
|
||||
}
|
||||
else
|
||||
internal_error (__FILE__, __LINE__, "No gdbarch_unwind_pc method");
|
||||
this_frame->prev_pc.value = pc;
|
||||
|
@ -590,33 +566,6 @@ frame_register (struct frame_info *frame, int regnum,
|
|||
gdb_assert (realnump != NULL);
|
||||
/* gdb_assert (bufferp != NULL); */
|
||||
|
||||
/* Ulgh! Old code that, for lval_register, sets ADDRP to the offset
|
||||
of the register in the register cache. It should instead return
|
||||
the REGNUM corresponding to that register. Translate the . */
|
||||
if (DEPRECATED_GET_SAVED_REGISTER_P ())
|
||||
{
|
||||
DEPRECATED_GET_SAVED_REGISTER (bufferp, optimizedp, addrp, frame,
|
||||
regnum, lvalp);
|
||||
/* Compute the REALNUM if the caller wants it. */
|
||||
if (*lvalp == lval_register)
|
||||
{
|
||||
int regnum;
|
||||
for (regnum = 0; regnum < NUM_REGS + NUM_PSEUDO_REGS; regnum++)
|
||||
{
|
||||
if (*addrp == register_offset_hack (current_gdbarch, regnum))
|
||||
{
|
||||
*realnump = regnum;
|
||||
return;
|
||||
}
|
||||
}
|
||||
internal_error (__FILE__, __LINE__,
|
||||
"Failed to compute the register number corresponding"
|
||||
" to 0x%s", paddr_d (*addrp));
|
||||
}
|
||||
*realnump = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Obtain the register value by unwinding the register from the next
|
||||
(more inner frame). */
|
||||
gdb_assert (frame != NULL && frame->next != NULL);
|
||||
|
@ -647,7 +596,8 @@ frame_unwind_register_signed (struct frame_info *frame, int regnum)
|
|||
{
|
||||
char buf[MAX_REGISTER_SIZE];
|
||||
frame_unwind_register (frame, regnum, buf);
|
||||
return extract_signed_integer (buf, DEPRECATED_REGISTER_VIRTUAL_SIZE (regnum));
|
||||
return extract_signed_integer (buf, register_size (get_frame_arch (frame),
|
||||
regnum));
|
||||
}
|
||||
|
||||
LONGEST
|
||||
|
@ -661,7 +611,8 @@ frame_unwind_register_unsigned (struct frame_info *frame, int regnum)
|
|||
{
|
||||
char buf[MAX_REGISTER_SIZE];
|
||||
frame_unwind_register (frame, regnum, buf);
|
||||
return extract_unsigned_integer (buf, DEPRECATED_REGISTER_VIRTUAL_SIZE (regnum));
|
||||
return extract_unsigned_integer (buf, register_size (get_frame_arch (frame),
|
||||
regnum));
|
||||
}
|
||||
|
||||
ULONGEST
|
||||
|
@ -676,7 +627,9 @@ frame_unwind_unsigned_register (struct frame_info *frame, int regnum,
|
|||
{
|
||||
char buf[MAX_REGISTER_SIZE];
|
||||
frame_unwind_register (frame, regnum, buf);
|
||||
(*val) = extract_unsigned_integer (buf, DEPRECATED_REGISTER_VIRTUAL_SIZE (regnum));
|
||||
(*val) = extract_unsigned_integer (buf,
|
||||
register_size (get_frame_arch (frame),
|
||||
regnum));
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -712,8 +665,7 @@ put_frame_register (struct frame_info *frame, int regnum, const void *buf)
|
|||
/* frame_register_read ()
|
||||
|
||||
Find and return the value of REGNUM for the specified stack frame.
|
||||
The number of bytes copied is DEPRECATED_REGISTER_RAW_SIZE
|
||||
(REGNUM).
|
||||
The number of bytes copied is REGISTER_SIZE (REGNUM).
|
||||
|
||||
Returns 0 if the register value could not be found. */
|
||||
|
||||
|
@ -803,20 +755,6 @@ frame_obstack_zalloc (unsigned long size)
|
|||
return data;
|
||||
}
|
||||
|
||||
CORE_ADDR *
|
||||
frame_saved_regs_zalloc (struct frame_info *fi)
|
||||
{
|
||||
fi->saved_regs = (CORE_ADDR *)
|
||||
frame_obstack_zalloc (SIZEOF_FRAME_SAVED_REGS);
|
||||
return fi->saved_regs;
|
||||
}
|
||||
|
||||
CORE_ADDR *
|
||||
deprecated_get_frame_saved_regs (struct frame_info *fi)
|
||||
{
|
||||
return fi->saved_regs;
|
||||
}
|
||||
|
||||
/* Return the innermost (currently executing) stack frame. This is
|
||||
split into two functions. The function unwind_to_current_frame()
|
||||
is wrapped in catch exceptions so that, even when the unwind of the
|
||||
|
@ -967,9 +905,6 @@ create_new_frame (CORE_ADDR addr, CORE_ADDR pc)
|
|||
deprecated_update_frame_base_hack (fi, addr);
|
||||
deprecated_update_frame_pc_hack (fi, pc);
|
||||
|
||||
if (DEPRECATED_INIT_EXTRA_FRAME_INFO_P ())
|
||||
DEPRECATED_INIT_EXTRA_FRAME_INFO (0, fi);
|
||||
|
||||
if (frame_debug)
|
||||
{
|
||||
fprintf_unfiltered (gdb_stdlog, "-> ");
|
||||
|
@ -1415,19 +1350,6 @@ get_frame_type (struct frame_info *frame)
|
|||
return frame->unwind->type;
|
||||
}
|
||||
|
||||
struct frame_extra_info *
|
||||
get_frame_extra_info (struct frame_info *fi)
|
||||
{
|
||||
return fi->extra_info;
|
||||
}
|
||||
|
||||
struct frame_extra_info *
|
||||
frame_extra_info_zalloc (struct frame_info *fi, long size)
|
||||
{
|
||||
fi->extra_info = frame_obstack_zalloc (size);
|
||||
return fi->extra_info;
|
||||
}
|
||||
|
||||
void
|
||||
deprecated_update_frame_pc_hack (struct frame_info *frame, CORE_ADDR pc)
|
||||
{
|
||||
|
@ -1460,27 +1382,6 @@ deprecated_update_frame_base_hack (struct frame_info *frame, CORE_ADDR base)
|
|||
frame->this_id.value.stack_addr = base;
|
||||
}
|
||||
|
||||
struct frame_info *
|
||||
deprecated_frame_xmalloc_with_cleanup (long sizeof_saved_regs,
|
||||
long sizeof_extra_info)
|
||||
{
|
||||
struct frame_info *frame = XMALLOC (struct frame_info);
|
||||
memset (frame, 0, sizeof (*frame));
|
||||
frame->this_id.p = 1;
|
||||
make_cleanup (xfree, frame);
|
||||
if (sizeof_saved_regs > 0)
|
||||
{
|
||||
frame->saved_regs = xcalloc (1, sizeof_saved_regs);
|
||||
make_cleanup (xfree, frame->saved_regs);
|
||||
}
|
||||
if (sizeof_extra_info > 0)
|
||||
{
|
||||
frame->extra_info = xcalloc (1, sizeof_extra_info);
|
||||
make_cleanup (xfree, frame->extra_info);
|
||||
}
|
||||
return frame;
|
||||
}
|
||||
|
||||
/* Memory access methods. */
|
||||
|
||||
void
|
||||
|
|
25
gdb/frame.h
25
gdb/frame.h
|
@ -657,22 +657,6 @@ extern struct frame_info *deprecated_safe_get_selected_frame (void);
|
|||
|
||||
extern struct frame_info *create_new_frame (CORE_ADDR base, CORE_ADDR pc);
|
||||
|
||||
|
||||
/* Create/access the frame's `extra info'. The extra info is used by
|
||||
older code to store information such as the analyzed prologue. The
|
||||
zalloc() should only be called by the INIT_EXTRA_INFO method. */
|
||||
|
||||
extern struct frame_extra_info *frame_extra_info_zalloc (struct frame_info *fi,
|
||||
long size);
|
||||
extern struct frame_extra_info *get_frame_extra_info (struct frame_info *fi);
|
||||
|
||||
/* Create/access the frame's `saved_regs'. The saved regs are used by
|
||||
older code to store the address of each register (except for
|
||||
SP_REGNUM where the value of the register in the previous frame is
|
||||
stored). */
|
||||
extern CORE_ADDR *frame_saved_regs_zalloc (struct frame_info *);
|
||||
extern CORE_ADDR *deprecated_get_frame_saved_regs (struct frame_info *);
|
||||
|
||||
/* FIXME: cagney/2002-12-06: Has the PC in the current frame changed?
|
||||
"infrun.c", Thanks to DECR_PC_AFTER_BREAK, can change the PC after
|
||||
the initial frame create. This puts things back in sync.
|
||||
|
@ -691,13 +675,4 @@ extern void deprecated_update_frame_pc_hack (struct frame_info *frame,
|
|||
extern void deprecated_update_frame_base_hack (struct frame_info *frame,
|
||||
CORE_ADDR base);
|
||||
|
||||
/* FIXME: cagney/2003-01-05: Allocate a frame, along with the
|
||||
saved_regs and extra_info. Set up cleanups for all three. Same as
|
||||
for deprecated_frame_xmalloc, targets are calling this when
|
||||
creating a scratch `struct frame_info'. The frame overhaul makes
|
||||
this unnecessary since all frame queries are parameterized with a
|
||||
common cache parameter and a frame. */
|
||||
extern struct frame_info *deprecated_frame_xmalloc_with_cleanup (long sizeof_saved_regs,
|
||||
long sizeof_extra_info);
|
||||
|
||||
#endif /* !defined (FRAME_H) */
|
||||
|
|
|
@ -1003,9 +1003,6 @@ frame_info (char *addr_exp, int from_tty)
|
|||
}
|
||||
}
|
||||
|
||||
if (DEPRECATED_FRAME_INIT_SAVED_REGS_P ()
|
||||
&& deprecated_get_frame_saved_regs (fi) == NULL)
|
||||
DEPRECATED_FRAME_INIT_SAVED_REGS (fi);
|
||||
/* Print as much information as possible on the location of all the
|
||||
registers. */
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue