This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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;
   }
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]