From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1135 invoked by alias); 1 Apr 2002 21:55:26 -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 1114 invoked from network); 1 Apr 2002 21:55:24 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sources.redhat.com with SMTP; 1 Apr 2002 21:55:24 -0000 Received: from drow by nevyn.them.org with local (Exim 3.35 #1 (Debian)) id 16s9ls-00032s-00; Mon, 01 Apr 2002 16:55:24 -0500 Date: Mon, 01 Apr 2002 13:55:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com, fnasser@redhat.com Subject: [RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC Message-ID: <20020401165524.A11531@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com, fnasser@redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.23i X-SW-Source: 2002-04/txt/msg00006.txt.bz2 At the current time, GCJ emits a call to _Jv_InitClass in the prologue of jmisc.main. That's right, a function call in the prologue. What this means to us is that if an argument does not have a second home in the function, and it is passed in a register, we'll never be able to print it inside the function. It will be clobbered by the time we stop outside of the prologue. The only reason the test passed on i386 was because the incoming argument was actually located on the stack (and thus survived the function call). [this is especially nasty because failing to print a Java array makes GDB very sad. It loops for hours, walking up the stack (very slowly because of thread_db). We then kill gdb, which may or may not kill jmisc, so the testsuite tends to leave zombies lying around.] This patch adds a use of the argument after the prologue, so that it will still be available to print. OK to commit? -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer 2002-04-01 Daniel Jacobowitz * gdb.java/jmisc.java: Add ``void foo (int len)''. Call it. * gdb.java/jmisc.exp (ptype jmisc): Update to match. Index: 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 --- jmisc.exp 2001/03/06 08:21:58 1.2 +++ jmisc.exp 2002/04/01 21:45:07 @@ -70,7 +70,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\\(int\\);\[\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 } } Index: 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 --- jmisc.java 2000/07/24 04:34:52 1.1 +++ jmisc.java 2002/04/01 21:45:07 @@ -1,7 +1,12 @@ public class jmisc { + public static void foo (int len) + { + return; + } public static void main (String[] args) { + foo (args.length); return; } }