components/gdb/patches/gdb.gdb.dwarf2-frame.c.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Thu, 10 Sep 2015 19:40:53 -0700
changeset 4855 0057a9ea6dcb
permissions -rw-r--r--
21813290 gdb: can't compute CFA for this frame (SPARC)

# 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);
 }