Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* RFC: Use Dwarf 2 CFI on PowerPC targets
@ 2004-09-08 15:44 Jim Blandy
  2005-03-26 22:43 ` Daniel Jacobowitz
  0 siblings, 1 reply; 5+ messages in thread
From: Jim Blandy @ 2004-09-08 15:44 UTC (permalink / raw)
  To: gdb-patches


This works fine on PowerPC E500 Linux; I'm still testing it on other
platforms.  Thus it's a Request for Comments, not Approval.  I'll be
back with test results on AIX, sim, and plain PowerPC Linux in a bit.

2004-09-02  Jim Blandy  <jimb@redhat.com>

	* rs6000-tdep.c: #include "dwarf2-frame.h".
	(rs6000_dwarf2_reg_to_regnum): Recognize 65 as another number for lr.
	(rs6000_gdbarch_init): Hook in dwarf2_frame_sniffer.
	* Makefile.in (rs6000-tdep.o): Update dependencies.
	
Index: gdb/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.613
diff -c -p -r1.613 Makefile.in
*** gdb/Makefile.in	1 Sep 2004 18:00:27 -0000	1.613
--- gdb/Makefile.in	2 Sep 2004 17:11:13 -0000
*************** rs6000-tdep.o: rs6000-tdep.c $(defs_h) $
*** 2396,2402 ****
  	$(reggroups_h) $(libbfd_h) $(coff_internal_h) $(libcoff_h) \
  	$(coff_xcoff_h) $(libxcoff_h) $(elf_bfd_h) $(solib_svr4_h) \
  	$(ppc_tdep_h) $(gdb_assert_h) $(dis_asm_h) $(trad_frame_h) \
! 	$(frame_unwind_h) $(frame_base_h)
  s390-nat.o: s390-nat.c $(defs_h) $(tm_h) $(regcache_h) $(inferior_h) \
  	$(s390_tdep_h)
  s390-tdep.o: s390-tdep.c $(defs_h) $(arch_utils_h) $(frame_h) $(inferior_h) \
--- 2396,2402 ----
  	$(reggroups_h) $(libbfd_h) $(coff_internal_h) $(libcoff_h) \
  	$(coff_xcoff_h) $(libxcoff_h) $(elf_bfd_h) $(solib_svr4_h) \
  	$(ppc_tdep_h) $(gdb_assert_h) $(dis_asm_h) $(trad_frame_h) \
! 	$(frame_unwind_h) $(frame_base_h) $(dwarf2_frame_h)
  s390-nat.o: s390-nat.c $(defs_h) $(tm_h) $(regcache_h) $(inferior_h) \
  	$(s390_tdep_h)
  s390-tdep.o: s390-tdep.c $(defs_h) $(arch_utils_h) $(frame_h) $(inferior_h) \
Index: gdb/rs6000-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v
retrieving revision 1.229
diff -c -p -r1.229 rs6000-tdep.c
*** gdb/rs6000-tdep.c	9 Aug 2004 18:43:21 -0000	1.229
--- gdb/rs6000-tdep.c	2 Sep 2004 17:11:14 -0000
***************
*** 40,45 ****
--- 40,46 ----
  #include "sim-regno.h"
  #include "gdb/sim-ppc.h"
  #include "reggroups.h"
+ #include "dwarf2-frame.h"
  
  #include "libbfd.h"		/* for bfd_default_set_arch_mach */
  #include "coff/internal.h"	/* for libcoff.h */
*************** rs6000_dwarf2_reg_to_regnum (int num)
*** 2067,2072 ****
--- 2068,2077 ----
    else
      switch (num)
        {
+         /* FIXME: jimb/2004-09-02: I think it's a bug that GCC ever
+            emits this.  But GCC 3.4 does use it in .debug_frame.  */
+       case 65:
+         return tdep->ppc_lr_regnum;
        case 67:
          return tdep->ppc_vrsave_regnum - 1; /* vscr */
        case 99:
*************** rs6000_gdbarch_init (struct gdbarch_info
*** 3281,3286 ****
--- 3286,3294 ----
    /* Helpers for function argument information.  */
    set_gdbarch_fetch_pointer_argument (gdbarch, rs6000_fetch_pointer_argument);
  
+   /* Hook in the DWARF CFI frame unwinder.  */
+   frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
+ 
    /* Hook in ABI-specific overrides, if they have been registered.  */
    gdbarch_init_osabi (info, gdbarch);
  


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: RFC: Use Dwarf 2 CFI on PowerPC targets
  2004-09-08 15:44 RFC: Use Dwarf 2 CFI on PowerPC targets Jim Blandy
@ 2005-03-26 22:43 ` Daniel Jacobowitz
  2005-03-27  0:40   ` Andreas Schwab
  0 siblings, 1 reply; 5+ messages in thread
From: Daniel Jacobowitz @ 2005-03-26 22:43 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

On Wed, Sep 08, 2004 at 10:43:27AM -0500, Jim Blandy wrote:
> 
> This works fine on PowerPC E500 Linux; I'm still testing it on other
> platforms.  Thus it's a Request for Comments, not Approval.  I'll be
> back with test results on AIX, sim, and plain PowerPC Linux in a bit.
> 
> 2004-09-02  Jim Blandy  <jimb@redhat.com>
> 
> 	* rs6000-tdep.c: #include "dwarf2-frame.h".
> 	(rs6000_dwarf2_reg_to_regnum): Recognize 65 as another number for lr.
> 	(rs6000_gdbarch_init): Hook in dwarf2_frame_sniffer.
> 	* Makefile.in (rs6000-tdep.o): Update dependencies.

Did you ever finish testing these?  There are now twelve targets which
use dwarf2_frame_sniffer and I've just posted a patch to enable it for
another, but PPC is still behind.

-- 
Daniel Jacobowitz
CodeSourcery, LLC


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: RFC: Use Dwarf 2 CFI on PowerPC targets
  2005-03-26 22:43 ` Daniel Jacobowitz
@ 2005-03-27  0:40   ` Andreas Schwab
  2005-03-29 17:42     ` Jim Blandy
  0 siblings, 1 reply; 5+ messages in thread
From: Andreas Schwab @ 2005-03-27  0:40 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

Daniel Jacobowitz <drow@false.org> writes:

> On Wed, Sep 08, 2004 at 10:43:27AM -0500, Jim Blandy wrote:
>> 
>> This works fine on PowerPC E500 Linux; I'm still testing it on other
>> platforms.  Thus it's a Request for Comments, not Approval.  I'll be
>> back with test results on AIX, sim, and plain PowerPC Linux in a bit.
>> 
>> 2004-09-02  Jim Blandy  <jimb@redhat.com>
>> 
>> 	* rs6000-tdep.c: #include "dwarf2-frame.h".
>> 	(rs6000_dwarf2_reg_to_regnum): Recognize 65 as another number for lr.
>> 	(rs6000_gdbarch_init): Hook in dwarf2_frame_sniffer.
>> 	* Makefile.in (rs6000-tdep.o): Update dependencies.
>
> Did you ever finish testing these?  There are now twelve targets which
> use dwarf2_frame_sniffer and I've just posted a patch to enable it for
> another, but PPC is still behind.

I've tested the patch with current HEAD on powerpc-suse-linux, and there
are 73 regressions and 17 progressions.

+FAIL: gdb.base/corefile.exp: backtrace in corefile.exp
-FAIL: gdb.base/gcore.exp: where in corefile (pattern 2)
+FAIL: gdb.base/funcargs.exp: backtrace from call6c (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call6d (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call6e (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call6f (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call6g (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call6h (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call6i (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call6j (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call6k (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call7c (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call7d (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call7e (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call7f (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call7g (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call7h (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call7i (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call7j (pattern 3)
+FAIL: gdb.base/funcargs.exp: backtrace from call7k (pattern 3)
+FAIL: gdb.base/funcargs.exp: recursive passing of structs by value (pattern 8 + sentinel)
+FAIL: gdb.base/gcore.exp: where in corefile (pattern 3)
-FAIL: gdb.base/recurse.exp: second instance watchpoint deleted when leaving scope
-FAIL: gdb.base/recurse.exp: continue to first instance watchpoint, second time
-FAIL: gdb.base/recurse.exp: first instance watchpoint deleted when leaving scope
-FAIL: gdb.base/sigbpt.exp: stepi; stepi out of handler
-FAIL: gdb.base/sigbpt.exp: stepi bp before segv; stepi out of handler
-FAIL: gdb.base/sigbpt.exp: stepi bp at segv; stepi out of handler
-FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; stepi out of handler
-FAIL: gdb.base/sigstep.exp: stepi from handleri; leave handler
-FAIL: gdb.base/sigstep.exp: nexti from handleri; leave handler
+FAIL: gdb.base/langs.exp: backtrace in langs.exp
+FAIL: gdb.base/langs.exp: up to cppsub_ in langs.exp
+FAIL: gdb.base/langs.exp: up to fsub in langs.exp
+FAIL: gdb.base/langs.exp: show language at fsub in langs.exp
+FAIL: gdb.base/langs.exp: up to langs0__2do in langs.exp
+FAIL: gdb.base/langs.exp: show language at langs0__2do in langs.exp
+FAIL: gdb.base/langs.exp: up to main in langs.exp
+FAIL: gdb.base/savedregs.exp: Check dummy info frame; stack contains callee caller dummy catcher sigtramp thrower main
+FAIL: gdb.base/sigaltstack.exp: backtrace (pattern 4)
+FAIL: gdb.base/sigaltstack.exp: finish to catch INNER (the program exited)
+FAIL: gdb.base/sigaltstack.exp: finish from catch INNER
+FAIL: gdb.base/sigaltstack.exp: finish to OUTER
+FAIL: gdb.base/sigaltstack.exp: finish to catch MAIN
+FAIL: gdb.base/sigaltstack.exp: finish to MAIN
+FAIL: gdb.cp/classes.exp: print (int)pmi == sizeof(int)
+FAIL: gdb.cp/classes.exp: print bar.st
+FAIL: gdb.cp/classes.exp: print *$
+FAIL: gdb.cp/classes.exp: print csi without static members
+FAIL: gdb.cp/classes.exp: print cnsi without static members
+FAIL: gdb.cp/classes.exp: print csi with static members
+FAIL: gdb.cp/classes.exp: print cnsi with static members
+FAIL: gdb.cp/classes.exp: continue (the program is no longer running)
+FAIL: gdb.cp/classes.exp: finish from marker_reg1
+FAIL: gdb.cp/classes.exp: calling method for small class
+FAIL: gdb.mi/mi-stack.exp: stack frame listing
+FAIL: gdb.mi/mi-stack.exp: stack frame listing 1 1
+FAIL: gdb.mi/mi-stack.exp: stack frame listing 1 3
+FAIL: gdb.mi/mi-stack.exp: stack args listing 0
+FAIL: gdb.mi/mi-stack.exp: stack args listing 0 1 3
+FAIL: gdb.mi/mi-stack.exp: stack args listing 1
+FAIL: gdb.mi/mi-stack.exp: stack args listing 1 1 3
+FAIL: gdb.mi/mi-stack.exp: stack info-depth
+FAIL: gdb.mi/mi-syn-frame.exp: 407-stack-list-frames
+FAIL: gdb.mi/mi-syn-frame.exp: 408-exec-continue
+FAIL: gdb.mi/mi-syn-frame.exp: 409-stack-list-frames 0 0
+FAIL: gdb.mi/mi-syn-frame.exp: backtrace from inferior function at exception
+FAIL: gdb.mi/mi2-stack.exp: stack frame listing
+FAIL: gdb.mi/mi2-stack.exp: stack frame listing 1 1
+FAIL: gdb.mi/mi2-stack.exp: stack frame listing 1 3
+FAIL: gdb.mi/mi2-stack.exp: stack args listing 0
+FAIL: gdb.mi/mi2-stack.exp: stack args listing 0 1 3
+FAIL: gdb.mi/mi2-stack.exp: stack args listing 1
+FAIL: gdb.mi/mi2-stack.exp: stack args listing 1 1 3
+FAIL: gdb.mi/mi2-stack.exp: stack info-depth
+FAIL: gdb.mi/mi2-syn-frame.exp: 407-stack-list-frames
+FAIL: gdb.mi/mi2-syn-frame.exp: 408-exec-continue
+FAIL: gdb.mi/mi2-syn-frame.exp: 409-stack-list-frames 0 0
+FAIL: gdb.mi/mi2-syn-frame.exp: backtrace from inferior function at exception
-FAIL: gdb.threads/gcore-thread.exp: corefile contains at least two threads
-FAIL: gdb.threads/linux-dp.exp: philosopher is distinct: 1
+FAIL: gdb.threads/linux-dp.exp: first thread-specific breakpoint hit
-FAIL: gdb.threads/pthreads.exp: check backtrace from main thread
-FAIL: gdb.threads/pthreads.exp: check backtrace from thread 1
-FAIL: gdb.threads/pthreads.exp: apply backtrace command to all three threads
-FAIL: gdb.threads/schedlock.exp: thread 2 ran (didn't run)
+FAIL: gdb.threads/pthread_cond_wait.exp: backtrace in blocked thread
+FAIL: gdb.threads/schedlock.exp: thread 3 ran (didn't run)

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: RFC: Use Dwarf 2 CFI on PowerPC targets
  2005-03-27  0:40   ` Andreas Schwab
@ 2005-03-29 17:42     ` Jim Blandy
  2005-03-29 21:45       ` Andreas Schwab
  0 siblings, 1 reply; 5+ messages in thread
From: Jim Blandy @ 2005-03-29 17:42 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: gdb-patches

Andreas Schwab <schwab@suse.de> writes:

> Daniel Jacobowitz <drow@false.org> writes:
> 
> > On Wed, Sep 08, 2004 at 10:43:27AM -0500, Jim Blandy wrote:
> >> 
> >> This works fine on PowerPC E500 Linux; I'm still testing it on other
> >> platforms.  Thus it's a Request for Comments, not Approval.  I'll be
> >> back with test results on AIX, sim, and plain PowerPC Linux in a bit.
> >> 
> >> 2004-09-02  Jim Blandy  <jimb@redhat.com>
> >> 
> >> 	* rs6000-tdep.c: #include "dwarf2-frame.h".
> >> 	(rs6000_dwarf2_reg_to_regnum): Recognize 65 as another number for lr.
> >> 	(rs6000_gdbarch_init): Hook in dwarf2_frame_sniffer.
> >> 	* Makefile.in (rs6000-tdep.o): Update dependencies.
> >
> > Did you ever finish testing these?  There are now twelve targets which
> > use dwarf2_frame_sniffer and I've just posted a patch to enable it for
> > another, but PPC is still behind.
> 
> I've tested the patch with current HEAD on powerpc-suse-linux, and there
> are 73 regressions and 17 progressions.

Which GCC are you using?  One problem I ran into was that GCC's
.debug_frame information used one number for the return address
register in the CIE's, and a different one in the FDE's.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: RFC: Use Dwarf 2 CFI on PowerPC targets
  2005-03-29 17:42     ` Jim Blandy
@ 2005-03-29 21:45       ` Andreas Schwab
  0 siblings, 0 replies; 5+ messages in thread
From: Andreas Schwab @ 2005-03-29 21:45 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

Jim Blandy <jimb@redhat.com> writes:

> Which GCC are you using?

Both 3.3.5 and 4.0, with only minimal differences.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-03-29 21:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-08 15:44 RFC: Use Dwarf 2 CFI on PowerPC targets Jim Blandy
2005-03-26 22:43 ` Daniel Jacobowitz
2005-03-27  0:40   ` Andreas Schwab
2005-03-29 17:42     ` Jim Blandy
2005-03-29 21:45       ` Andreas Schwab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox