components/gdb/patches/gdb.gdb.dwarf2-frame.c.patch
changeset 6420 65948e9e205b
parent 6419 c11c56158669
child 6421 40f2544c1ff6
equal deleted inserted replaced
6419:c11c56158669 6420:65948e9e205b
     1 # Known bug in GDB < 7.8:
       
     2 # https://sourceware.org/bugzilla/show_bug.cgi?id=16215
       
     3 # Backported to GDB 7.6 until we upgrade to GDB 7.9.
       
     4 # Without this patch, we get spurious errors debugging on SPARC,
       
     5 # especially with GCC >= 4.9.0.
       
     6 --- gdb-7.6/gdb/dwarf2-frame.c	2013-01-31 10:31:48.000000000 -0800
       
     7 +++ gdb-7.6/gdb/dwarf2-frame.c	2015-09-09 16:07:52.767075883 -0700
       
     8 @@ -1497,16 +1497,12 @@
       
     9  {
       
    10    while (get_frame_type (this_frame) == INLINE_FRAME)
       
    11      this_frame = get_prev_frame (this_frame);
       
    12 -  /* This restriction could be lifted if other unwinders are known to
       
    13 -     compute the frame base in a way compatible with the DWARF
       
    14 -     unwinder.  */
       
    15 -  if (!frame_unwinder_is (this_frame, &dwarf2_frame_unwind)
       
    16 -      && !frame_unwinder_is (this_frame, &dwarf2_tailcall_frame_unwind))
       
    17 -    error (_("can't compute CFA for this frame"));
       
    18 +
       
    19    if (get_frame_unwind_stop_reason (this_frame) == UNWIND_UNAVAILABLE)
       
    20      throw_error (NOT_AVAILABLE_ERROR,
       
    21  		 _("can't compute CFA for this frame: "
       
    22  		   "required registers or memory are unavailable"));
       
    23 +
       
    24    return get_frame_base (this_frame);
       
    25  }
       
    26