From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30189 invoked by alias); 25 Mar 2005 21:11:44 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 30075 invoked from network); 25 Mar 2005 21:11:34 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sourceware.org with SMTP; 25 Mar 2005 21:11:34 -0000 Received: from drow by nevyn.them.org with local (Exim 4.50 #1 (Debian)) id 1DEw6E-0000fG-8S; Fri, 25 Mar 2005 16:12:10 -0500 Date: Fri, 25 Mar 2005 21:11:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Cc: Richard Earnshaw Subject: [rfa] Use dwarf2 unwinding on ARM Message-ID: <20050325211209.GA2461@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com, Richard Earnshaw Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6+20040907i X-SW-Source: 2005-03/txt/msg00321.txt.bz2 Hi Richard, We talked last year about turning on dwarf2-based unwinding for ARM. The problem was that older versions of GCC would emit incorrect unwind information for Thumb functions, but that's been fixed for a while now; I think it's time to throw the switch in GDB. Committed to csl-arm-20050325-branch. OK for HEAD? -- Daniel Jacobowitz CodeSourcery, LLC 2005-03-25 Daniel Jacobowitz * Makefile.in (arm-tdep.o): Update dependencies. * arm-tdep.c: Include "objfiles.h" and "dwarf2-frame.h". (arm_gdbarch_init): Register dwarf2_frame_sniffer. Index: gdb/Makefile.in =================================================================== RCS file: /cvs/src/src/gdb/Makefile.in,v retrieving revision 1.707 diff -u -p -r1.707 Makefile.in --- gdb/Makefile.in 18 Mar 2005 21:03:38 -0000 1.707 +++ gdb/Makefile.in 25 Mar 2005 21:08:03 -0000 @@ -1744,7 +1744,8 @@ arm-tdep.o: arm-tdep.c $(defs_h) $(frame $(doublest_h) $(value_h) $(arch_utils_h) $(osabi_h) \ $(frame_unwind_h) $(frame_base_h) $(trad_frame_h) $(arm_tdep_h) \ $(gdb_sim_arm_h) $(elf_bfd_h) $(coff_internal_h) $(elf_arm_h) \ - $(gdb_assert_h) $(bfd_in2_h) $(libcoff_h) + $(gdb_assert_h) $(bfd_in2_h) $(libcoff_h) $(objfiles_h) \ + $(dwarf2_frame_h) auxv.o: auxv.c $(defs_h) $(target_h) $(gdbtypes_h) $(command_h) \ $(inferior_h) $(valprint_h) $(gdb_assert_h) $(auxv_h) \ $(elf_common_h) Index: gdb/arm-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/arm-tdep.c,v retrieving revision 1.194 diff -u -p -r1.194 arm-tdep.c --- gdb/arm-tdep.c 3 Mar 2005 15:14:09 -0000 1.194 +++ gdb/arm-tdep.c 25 Mar 2005 21:08:04 -0000 @@ -37,6 +37,8 @@ #include "frame-unwind.h" #include "frame-base.h" #include "trad-frame.h" +#include "objfiles.h" +#include "dwarf2-frame.h" #include "arm-tdep.h" #include "gdb/sim-arm.h" @@ -2789,6 +2791,7 @@ arm_gdbarch_init (struct gdbarch_info in /* Add some default predicates. */ frame_unwind_append_sniffer (gdbarch, arm_stub_unwind_sniffer); frame_unwind_append_sniffer (gdbarch, arm_sigtramp_unwind_sniffer); + frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer); frame_unwind_append_sniffer (gdbarch, arm_prologue_unwind_sniffer); /* Now we have tuned the configuration, set a few final things,