# Known bug in GDB < 7.8:
# https://sourceware.org/bugzilla/show_bug.cgi?id=16215
# Backported to GDB 7.6 until we upgrade to GDB 7.9.
# Without this patch, we get spurious errors debugging on SPARC,
# especially with GCC >= 4.9.0.
--- gdb-7.6/gdb/dwarf2-frame.c 2013-01-31 10:31:48.000000000 -0800
+++ gdb-7.6/gdb/dwarf2-frame.c 2015-09-09 16:07:52.767075883 -0700
@@ -1497,16 +1497,12 @@
{
while (get_frame_type (this_frame) == INLINE_FRAME)
this_frame = get_prev_frame (this_frame);
- /* This restriction could be lifted if other unwinders are known to
- compute the frame base in a way compatible with the DWARF
- unwinder. */
- if (!frame_unwinder_is (this_frame, &dwarf2_frame_unwind)
- && !frame_unwinder_is (this_frame, &dwarf2_tailcall_frame_unwind))
- error (_("can't compute CFA for this frame"));
+
if (get_frame_unwind_stop_reason (this_frame) == UNWIND_UNAVAILABLE)
throw_error (NOT_AVAILABLE_ERROR,
_("can't compute CFA for this frame: "
"required registers or memory are unavailable"));
+
return get_frame_base (this_frame);
}