diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2004-04-14 15:18:06 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2004-04-14 15:18:06 +0000 |
commit | 6672f2ae34dee699919822bbca9817b43355e483 (patch) | |
tree | c5eb807c307e4782678755ad1e1520a8f96739db | |
parent | 7346c1845d5bf2f37b5b8ce61c3104ed731e3b0b (diff) | |
download | gdb-6672f2ae34dee699919822bbca9817b43355e483.zip gdb-6672f2ae34dee699919822bbca9817b43355e483.tar.gz gdb-6672f2ae34dee699919822bbca9817b43355e483.tar.bz2 |
* ia64-tdep.c (ia64_libunwind_frame_prev_register): Handle null
value buffer.
* libunwind-frame.c (libunwind_frame_prev_register): Likewise.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/ia64-tdep.c | 4 | ||||
-rw-r--r-- | gdb/libunwind-frame.c | 8 |
3 files changed, 15 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 44a98f2..8a239e2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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) diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index 3bc8129..aefd3e3 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -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; diff --git a/gdb/libunwind-frame.c b/gdb/libunwind-frame.c index d7e8dbc..3462625 100644 --- a/gdb/libunwind-frame.c +++ b/gdb/libunwind-frame.c @@ -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; |