This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: gdb-patches at sources dot redhat dot com, fnasser at redhat dot com
- Date: Mon, 1 Apr 2002 16:55:24 -0500
- Subject: [RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC
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 <drow@mvista.com>
* 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 <init>\\(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;
}
}