aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/spu-tdep.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0aa1051..a52ce2e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2008-09-03 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * spu-tdep.c (spu_frame_unwind_cache): Do not attempt to unwind
+ SP or return address if we failed to find a valid frame.
+
2008-09-03 Aleksandar Ristovski <aristovski@qnx.com>
* breakpoint.c (breakpoint_init_inferior): Mark as not inserted only
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index 6e2fdb7..b016d4b 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -910,6 +910,10 @@ spu_frame_unwind_cache (struct frame_info *this_frame,
}
}
+ /* If we didn't find a frame, we cannot determine SP / return address. */
+ if (info->frame_base == 0)
+ return info;
+
/* The previous SP is equal to the CFA. */
trad_frame_set_value (info->saved_regs, SPU_SP_REGNUM, info->frame_base);