* ia64-tdep.c (ia64_libunwind_frame_prev_register): Handle null

value buffer.
	* libunwind-frame.c (libunwind_frame_prev_register): Likewise.
This commit is contained in:
Andreas Schwab 2004-04-14 15:18:06 +00:00
parent 7346c1845d
commit 6672f2ae34
3 changed files with 15 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2004-04-14 Andreas Schwab <schwab@suse.de>
* ia64-tdep.c (ia64_libunwind_frame_prev_register): Handle null
value buffer.
* libunwind-frame.c (libunwind_frame_prev_register): Likewise.
2004-04-14 Mark Kettenis <kettenis@gnu.org>
* vax-tdep.c (vax_store_arguments, vax_push_dummy_call)

View File

@ -2583,6 +2583,10 @@ ia64_libunwind_frame_prev_register (struct frame_info *next_frame,
libunwind_frame_prev_register (next_frame, this_cache, reg,
optimizedp, lvalp, addrp, realnump, valuep);
/* No more to do if the value is not supposed to be supplied. */
if (!valuep)
return;
if (VP0_REGNUM <= regnum && regnum <= VP63_REGNUM)
{
ULONGEST prN_val;

View File

@ -1,6 +1,6 @@
/* Frame unwinder for frames using the libunwind library.
Copyright 2003 Free Software Foundation, Inc.
Copyright 2003, 2004 Free Software Foundation, Inc.
Written by Jeff Johnston, contributed by Red Hat Inc.
@ -259,7 +259,8 @@ libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache,
*lvalp = not_lval;
*realnump = -1;
memset (valuep, 0, register_size (current_gdbarch, regnum));
if (valuep)
memset (valuep, 0, register_size (current_gdbarch, regnum));
if (uw_regnum < 0)
return;
@ -281,7 +282,8 @@ libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache,
if (ret < 0)
return;
memcpy (valuep, ptr, register_size (current_gdbarch, regnum));
if (valuep)
memcpy (valuep, ptr, register_size (current_gdbarch, regnum));
if (unw_get_saveloc_p (&cache->cursor, uw_regnum, &sl) < 0)
return;