From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3398 invoked by alias); 2 Apr 2002 07:08:12 -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 3351 invoked from network); 2 Apr 2002 07:08:08 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sources.redhat.com with SMTP; 2 Apr 2002 07:08:08 -0000 Received: from drow by nevyn.them.org with local (Exim 3.35 #1 (Debian)) id 16sIOi-0000IT-00; Tue, 02 Apr 2002 02:08:04 -0500 Date: Mon, 01 Apr 2002 23:08:00 -0000 From: Daniel Jacobowitz To: Michael Elizabeth Chastain , fnasser@redhat.com, gdb-patches@sources.redhat.com Subject: Re: [RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC Message-ID: <20020402020804.A1086@nevyn.them.org> Mail-Followup-To: Michael Elizabeth Chastain , fnasser@redhat.com, gdb-patches@sources.redhat.com References: <200204020401.g3241iD10789@duracef.shout.net> <20020401234814.A29797@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020401234814.A29797@nevyn.them.org> User-Agent: Mutt/1.3.23i X-SW-Source: 2002-04/txt/msg00017.txt.bz2 On Mon, Apr 01, 2002 at 11:48:14PM -0500, Daniel Jacobowitz wrote: > On Mon, Apr 01, 2002 at 10:01:44PM -0600, Michael Elizabeth Chastain wrote: > > Okay, I'll volunteer, but I don't have any PPC hardware. If you > > send me a binary test program, will I be able to get somewhere with a > > powerpc-unknown-eabi cross gdb? > > > > I will see if I can at least make gdb throw up instead of going into a > > silent death spiral. > > I can't think how. Running Java programs requires a threads package, > as best I can tell - if it's possible without, I can't see how... > > Actually, though, I figured out where the problem lies. I'll spare you > the investigation and try to fix it myself. Here's a revised testsuite patch. This one only adds tests, doesn't remove any. The patch to fix the others will be in my next message. This one better, Michael? -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer 2002-04-01 Daniel Jacobowitz * gdb.java/jmisc.java: Add ``void foo (String[] args)''. Call it. * gdb.java/jmisc2.java: New test. * gdb.java/jmisc.exp (ptype jmisc): Update to match ``foo''. Add test for jmisc2. Index: testsuite/gdb.java/jmisc2.java =================================================================== RCS file: N/A diff -u /dev/null testsuite/gdb.java/jmisc2.java --- /dev/null Wed Dec 31 19:00:00 1969 +++ testsuite/gdb.java/jmisc2.java Tue Apr 2 02:03:47 2002 @@ -0,0 +1,7 @@ +public class jmisc2 +{ + public static void main (String[] args) + { + return; + } +} Index: testsuite/gdb.java/jmisc.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.java/jmisc.exp,v retrieving revision 1.2 diff -u -p -r1.2 jmisc.exp --- testsuite/gdb.java/jmisc.exp 2001/03/06 08:21:58 1.2 +++ testsuite/gdb.java/jmisc.exp 2002/04/02 07:04:23 @@ -34,6 +34,14 @@ if { [compile_java_from_source ${srcfil return -1 } +set testfile2 "jmisc2" +set srcfile2 ${srcdir}/$subdir/${testfile2}.java +set binfile2 ${objdir}/${subdir}/${testfile2} +if { [compile_java_from_source ${srcfile2} ${binfile2} "-g"] != "" } { + untested "Couldn't compile ${srcfile2}" + return -1 +} + # Set the current language to java. This counts as a test. If it # fails, then we skip the other tests. @@ -70,7 +78,7 @@ if ![set_lang_java] then { send_gdb "ptype jmisc\n" gdb_expect { - -re "type = class jmisc extends java.lang.Object \{\[\r\n\ \t]+void main\\(java\.lang\.String\\\[]\\);\[\r\n\ \t]+void \\(void\\);\[\r\n\ \t]+\}\[\r\n\ \t]+$gdb_prompt $" { pass "ptype jmisc" } + -re "type = class jmisc extends java.lang.Object \{\[\r\n\ \t\]+void foo\\(java\.lang\.String\\\[]\\);\[\r\n\ \t\]+void main\\(java\.lang\.String\\\[]\\);\[\r\n\ \t]+jmisc\\(\\);\[\r\n\ \t]+\}\[\r\n\ \t]+$gdb_prompt $" { pass "ptype jmisc" } -re ".*$gdb_prompt $" { fail "ptype jmisc" } timeout { fail "ptype jmisc (timeout)" ; return } } @@ -87,5 +95,29 @@ if ![set_lang_java] then { -re "\\\$2 = \{length: 0\}\[\r\n\ \t]+$gdb_prompt $" { pass "p *args" } -re ".*$gdb_prompt $" { fail "p *args" } timeout { fail "p *args (timeout)" ; return } + } +} + +# Start a clean gdb on jmisc2 +set testfile ${testfile2} +set srcfile ${srcfile2} +set binfile ${binfile2} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir + +if ![set_lang_java] then { + runto ${testfile}.main + + # On architectures where arguments are passed in registers (not on the + # stack), if the argument to main is dead, GCJ's call to _Jv_Init may + # corrupt the argument pointer. Make sure GDB doesn't crash printing + # the (possibly corrupt) pointer. + send_gdb "p *args\n" + gdb_expect { + -re ".*$gdb_prompt $" + { pass "p *args a second time" } + timeout { fail "p *args a second time (timeout)" ; return } } } Index: testsuite/gdb.java/jmisc.java =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.java/jmisc.java,v retrieving revision 1.1 diff -u -p -r1.1 jmisc.java --- testsuite/gdb.java/jmisc.java 2000/07/24 04:34:52 1.1 +++ testsuite/gdb.java/jmisc.java 2002/04/02 07:04:23 @@ -1,7 +1,12 @@ public class jmisc { + public static void foo (String[] args) + { + return; + } public static void main (String[] args) { + foo (args); return; } }