This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC]: append dwarf2 unwinder on sparc


> From: Tristan Gingold <gingold@adacore.com>
> Date: Tue, 1 Jul 2014 17:17:34 +0200
> 
> Hello,
> 
> as gcc 4.9 has switched to dwarf-4 by default, it now emits DW_OP_call_frame_cfa.
> But gdb is able to handle it only if the frame was unwinded by dwarf2
> (See dwarf2-frame.c:dwarf2_frame_cfa)
> 
> Is there any reason not to append the dwarf2 unwinder on sparc ?

Yes.  The dwarf2 unwinder doesn't work properly with StackGhost.  For
Linux we append the dwarf2 unwinder in the OS/ABI-specific
initialization function.

On SPARC there is not much ambiuity about the call frame address.
Perhaps it is time to lift the restriction in dwarf2_frame_cfa()?

> 	* sparc-tdep.c (sparc32_gdbarch_init): Call dwarf2_append_unwinders.
> 
> diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
> index e7b3090..5b8ad38 100644
> --- a/gdb/sparc-tdep.c
> +++ b/gdb/sparc-tdep.c
> @@ -1739,6 +1739,11 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
>    /* Hook in ABI-specific overrides, if they have been registered.  */
>    gdbarch_init_osabi (info, gdbarch);
>  
> +  /* Hook in the DWARF CFI frame unwinder.  This unwinder is appended
> +     to the list before the prologue-based unwinders, so that DWARF
> +     CFI info will be used if it is available.  */
> +  dwarf2_append_unwinders (gdbarch);
> +
>    frame_unwind_append_unwinder (gdbarch, &sparc32_frame_unwind);
>  
>    /* If we have register sets, enable the generic core file support.  */
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]