Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC
@ 2002-04-01 13:55 Daniel Jacobowitz
  2002-04-01 15:19 ` Fernando Nasser
  0 siblings, 1 reply; 8+ messages in thread
From: Daniel Jacobowitz @ 2002-04-01 13:55 UTC (permalink / raw)
  To: gdb-patches, fnasser

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


^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: [RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC
@ 2002-04-01 19:43 Michael Elizabeth Chastain
  2002-04-01 19:49 ` Daniel Jacobowitz
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Elizabeth Chastain @ 2002-04-01 19:43 UTC (permalink / raw)
  To: drow, fnasser, gdb-patches

Daniel Jacobowitz writes:
> [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.]

Maybe my view of the world is a little twisted, but I think a test case
is good when it makes gdb lose its mind.  I am in favor of changing the
test suite to work around bugs in compilers and other tools that are
outside our responsibility but gdb is inside our responsibility.

> This patch adds a use of the argument after the prologue, so that it will
> still be available to print.  OK to commit?

I would rather keep the original test and file a bug report.  Perhaps
clone the test so that you can test the behavior that you want to test
as well as banging on the broken behavior.

My two cents,

Michael C


^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: [RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC
@ 2002-04-01 20:01 Michael Elizabeth Chastain
  2002-04-01 20:48 ` Daniel Jacobowitz
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Elizabeth Chastain @ 2002-04-01 20:01 UTC (permalink / raw)
  To: drow; +Cc: fnasser, gdb-patches

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.

Michael C


^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: [RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC
@ 2002-04-02  8:24 Michael Elizabeth Chastain
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Elizabeth Chastain @ 2002-04-02  8:24 UTC (permalink / raw)
  To: drow, fnasser, gdb-patches

Indeed, I like this better.  I also like the comment about the corruption
so that someone, some time, can have a clue when they start debugging it.

Michael C


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

end of thread, other threads:[~2002-04-02 16:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-01 13:55 [RFA/testsuite] Tweak gdb.java/jmisc.java to pass on PowerPC Daniel Jacobowitz
2002-04-01 15:19 ` Fernando Nasser
2002-04-01 19:43 Michael Elizabeth Chastain
2002-04-01 19:49 ` Daniel Jacobowitz
2002-04-01 20:01 Michael Elizabeth Chastain
2002-04-01 20:48 ` Daniel Jacobowitz
2002-04-01 23:08   ` Daniel Jacobowitz
2002-04-02  8:24 Michael Elizabeth Chastain

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