Browse Source

* ia64-tdep.c (ia64_libunwind_frame_this_id): Adapt uses of

libunwind_frame_prev_register to use a gdb_byte buffer and
	extract_unsigned_integer.
	(ia64_libunwind_sigtramp_frame_prev_register): Likewise.

	* libunwind-frame.c (libunwind_frame_prev_register): Change type
	of last argument to `gdb_byte *'
	* libunwind-frame.h: Adjust declaration.
newlib-autotools-branch
Andreas Schwab 21 years ago
parent
commit
f1b4b38ecb
  1. 11
      gdb/ChangeLog
  2. 7
      gdb/ia64-tdep.c
  3. 4
      gdb/libunwind-frame.c
  4. 4
      gdb/libunwind-frame.h

11
gdb/ChangeLog

@ -1,3 +1,14 @@
2006-03-08 Andreas Schwab <schwab@suse.de>
* ia64-tdep.c (ia64_libunwind_frame_this_id): Adapt use of
libunwind_frame_prev_register to use a gdb_byte buffer and
extract_unsigned_integer.
(ia64_libunwind_sigtramp_frame_prev_register): Likewise.
* libunwind-frame.c (libunwind_frame_prev_register): Change type
of last argument to `gdb_byte *'
* libunwind-frame.h: Adjust declaration.
2006-03-08 Paul Brook <paul@codesourcery.com>
* arm-tdep.c (arm_push_dummy_call): Remove stack alignment.

7
gdb/ia64-tdep.c

@ -2732,7 +2732,8 @@ ia64_libunwind_frame_this_id (struct frame_info *next_frame, void **this_cache,
and don't want to unwind past this frame. We return a null frame_id to
indicate this. */
libunwind_frame_prev_register (next_frame, this_cache, IA64_IP_REGNUM,
&optimized, &lval, &addr, &realnum, &prev_ip);
&optimized, &lval, &addr, &realnum, buf);
prev_ip = extract_unsigned_integer (buf, 8);
if (prev_ip != 0)
(*this_id) = frame_id_build_special (id.stack_addr, id.code_addr, bsp);
@ -2892,6 +2893,7 @@ ia64_libunwind_sigtramp_frame_prev_register (struct frame_info *next_frame,
int *realnump, gdb_byte *valuep)
{
gdb_byte buf[8];
CORE_ADDR prev_ip, addr;
int realnum, optimized;
enum lval_type lval;
@ -2900,7 +2902,8 @@ ia64_libunwind_sigtramp_frame_prev_register (struct frame_info *next_frame,
/* If the previous frame pc value is 0, then we want to use the SIGCONTEXT
method of getting previous registers. */
libunwind_frame_prev_register (next_frame, this_cache, IA64_IP_REGNUM,
&optimized, &lval, &addr, &realnum, &prev_ip);
&optimized, &lval, &addr, &realnum, buf);
prev_ip = extract_unsigned_integer (buf, 8);
if (prev_ip == 0)
{

4
gdb/libunwind-frame.c

@ -1,6 +1,6 @@
/* Frame unwinder for frames using the libunwind library.
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
Written by Jeff Johnston, contributed by Red Hat Inc.
@ -248,7 +248,7 @@ void
libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache,
int regnum, int *optimizedp,
enum lval_type *lvalp, CORE_ADDR *addrp,
int *realnump, void *valuep)
int *realnump, gdb_byte *valuep)
{
struct libunwind_frame_cache *cache =
libunwind_frame_cache (next_frame, this_cache);

4
gdb/libunwind-frame.h

@ -1,6 +1,6 @@
/* Frame unwinder for frames with libunwind frame information.
Copyright (C) 2003 Free Software Foundation, Inc.
Copyright (C) 2003, 2006 Free Software Foundation, Inc.
Contributed by Jeff Johnston.
@ -51,7 +51,7 @@ void libunwind_frame_this_id (struct frame_info *next_frame, void **this_cache,
void libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache,
int regnum, int *optimizedp,
enum lval_type *lvalp, CORE_ADDR *addrp,
int *realnump, void *valuep);
int *realnump, gdb_byte *valuep);
CORE_ADDR libunwind_frame_base_address (struct frame_info *next_frame, void **this_cache);
int libunwind_is_initialized (void);

Loading…
Cancel
Save