libgcj problems on panther

Andreas Tobler toa@pop.agri.ch
Mon Nov 10 14:13:00 GMT 2003


Hi all,

since a few days panther (OS-X 10.3) is out and gives us some nice 
improvements regarding build speed. Unfortunately we also have a serious 
  problem to run the testsuite in libgcj. It is not only testsuite related.

See here: http://gcc.gnu.org/ml/gcc-testresults/2003-11/msg00367.html 
for a sample of the results.

If we run a test by hand it will succeed if we do it right:)
But it should not be necessary to pay attention to some settings. It 
should always run.

Lets take the ArrayStore.exe

If we run it in the testsuite directory we succeed:
titanium:powerpc-apple-darwin7.0.0/libjava/testsuite] andreast% 
./ArrayStore.exe
java.lang.ArrayStoreException
java.lang.ArrayStoreException
java.lang.ArrayIndexOutOfBoundsException
foobar

We change to the builddir:

[titanium:objdir/powerpc-apple-darwin7.0.0/libjava] andreast% 
./testsuite/ArrayStore.exe
Bus error

This is with CLASSPATH not set.

If we set the CLASSPATH var the app always Bus Errors.

Below you find a bt full of such a crash.

The same happens for 'gij ArrayStore'

Andrew Pinski found out, if we remove the 
gnu/gcj/convert/Output_ASCII.class from the buildtree, the app runs with 
and with out CLASSPATH set. It also runs in the builddir.

In darwin6.3 everything went fine. One improvement from darwin6.3 to 
darwin7.0 is wchar support. Maybe this is related ?

For the moment I'm stuck with analyzing, do you have an idea on how to 
debug?

Thanks for any pointer.

Andreas


[titanium:objdir/powerpc-apple-darwin7.0.0/libjava] andreast% gdb 
testsuite/ArrayStore.exe
GNU gdb 5.3-20030128 (Apple version gdb-292) (Sat Sep 20 03:22:27 GMT 2003)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "powerpc-apple-darwin".
Reading symbols for shared libraries ... done
(gdb) r
Starting program: 
/Volumes/xufs/gcc-cvs-clean/objdir/powerpc-apple-darwin7.0.0/libjava/testsuite/ArrayStore.exe 

Reading symbols for shared libraries . done

Program received signal EXC_BAD_ACCESS, Could not access memory.
_Jv_InterpMethod::run(void*, ffi_raw*) (this=0xa68dc0, retp=0xbffff570, 
args=0xbffff400) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/include/java-interp.h:262
262         next = *n;
(gdb) bt full
#0  _Jv_InterpMethod::run(void*, ffi_raw*) (this=0xa68dc0, 
retp=0xbffff570, args=0xbffff400) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/include/java-interp.h:262
         this = (_Jv_MethodChain * const) 0xbffff180
         n = (_Jv_MethodChain **) 0x38
         thread = (struct Thread *) 0x0
         frame_desc = {
   self = 0x0,
   ptr = 0x0,
   next = 0x0
}
         stack = (_Jv_word (*)[0]) 0x0
         sp = (_Jv_word *) 0xa9ff3c
         locals = (_Jv_word (*)[0]) 0x0
         pool_data = (_Jv_word *) 0x0
         fun = (void (*)(void)) 0
         rmeth = (_Jv_ResolvedMethod *) 0x766b0
         tmpval = 1976236
         insn_target = {0x73108, 0x76550, 0x76534, 0x76518, 0x764fc, 
0x764e0, 0x764c4, 0x764a8, 0x7648c, 0x7646c, 0x76448, 0x7642c, 0x76410, 
0x763f4, 0x763d4, 0x763b0, 0x76394, 0x76394, 0x76378, 0x76378, 0x7634c, 
0x76324, 0x762e8, 0x762c0, 0x76284, 0x7625c, 0x7623c, 0x7621c, 0x761fc, 
0x761dc, 0x761b0, 0x76180, 0x76154, 0x76028, 0x76008, 0x75fe8, 0x75fc8, 
0x75fa8, 0x75f7c, 0x75f4c, 0x75f20, 0x760b4, 0x76094, 0x76074, 0x76054, 
0x76124, 0x760e0, 0x75ed0, 0x75e8c, 0x75e24, 0x75de0, 0x75d8c, 0x75d48, 
0x75d00, 0x75cdc, 0x75ca8, 0x75c84, 0x75c50, 0x75c2c, 0x75c10, 0x75bf4, 
0x75bd8, 0x75bbc, 0x75b98, 0x75b70, 0x75a8c, 0x75a68, 0x75a4c, 0x75a30, 
0x75a14, 0x759f8, 0x759d4, 0x759ac, 0x75b0c, 0x75ae8, 0x75acc, 0x75ab0, 
0x75b4c, 0x75b30, 0x75968, 0x75914, 0x758bc, 0x75858, 0x75800, 0x757c4, 
0x75774, 0x75734, 0x75720, 0x7570c, 0x756f0, 0x756b0, 0x75670, 0x7564c, 
0x755f4, 0x7559c, 0x75578, 0x75554, 0x75500, 0x754dc, 0x75488, 0x75464, 
0x75410, 0x753ec, 0x75398, 0x75374, 0x75320, 0x752fc, 0x752a8, 0x75284, 
0x75234, 0x75210, 0x751bc, 0x75198, 0x75148, 0x75120, 0x750cc, 0x750ac, 
0x7506c, 0x7504c, 0x7500c, 0x74fe4, 0x74fa4, 0x74f7c, 0x74f3c, 0x74f14, 
0x74ed4, 0x74eb0, 0x74e60, 0x74e3c, 0x74dec, 0x74dc8, 0x74d78, 0x74d48, 
0x74d24, 0x74ce4, 0x74c98, 0x74c6c, 0x74c38, 0x74bf4, 0x74b48, 0x74ab8, 
0x74a8c, 0x749e4, 0x74944, 0x74914, 0x748cc, 0x748ac, 0x748ec, 0x7484c, 
0x7480c, 0x747dc, 0x747c4, 0x74774, 0x74744, 0x74724, 0x746f4, 0x746d4, 
0x746a4, 0x74684, 0x74650, 0x7462c, 0x73ad8, 0x73ab4, 0x73a80, 0x73a5c, 
0x73944, 0x73920, 0x738c4, 0x738a0, 0x73e9c, 0x73e48, 0x73df4, 0x73d60, 
0x73da4, 0x73d98, 0x73dc8, 0x73d60, 0x73d68, 0x7427c, 0x742f4, 0x741e8, 
0x73ff4, 0x73f9c, 0x73f58, 0x73f20, 0x73ccc, 0x0, 0x73c74, 0x73d34, 
0x73c24, 0x73bfc, 0x73bf4, 0x73b60, 0x73b0c, 0x73a34, 0x73a14, 0x0, 
0x73998, 0x73978, 0x738d8...}
         pc = 0xbffff400
         frame_desc = {
   self = 0x0,
   ptr = 0x0,
   next = 0x0
}
         stack = (_Jv_word (*)[0]) 0x0
         locals = (_Jv_word (*)[0]) 0x0
         pool_data = (_Jv_word *) 0x0
         insn_target = {0x73108, 0x76550, 0x76534, 0x76518, 0x764fc, 
0x764e0, 0x764c4, 0x764a8, 0x7648c, 0x7646c, 0x76448, 0x7642c, 0x76410, 
0x763f4, 0x763d4, 0x763b0, 0x76394, 0x76394, 0x76378, 0x76378, 0x7634c, 
0x76324, 0x762e8, 0x762c0, 0x76284, 0x7625c, 0x7623c, 0x7621c, 0x761fc, 
0x761dc, 0x761b0, 0x76180, 0x76154, 0x76028, 0x76008, 0x75fe8, 0x75fc8, 
0x75fa8, 0x75f7c, 0x75f4c, 0x75f20, 0x760b4, 0x76094, 0x76074, 0x76054, 
0x76124, 0x760e0, 0x75ed0, 0x75e8c, 0x75e24, 0x75de0, 0x75d8c, 0x75d48, 
0x75d00, 0x75cdc, 0x75ca8, 0x75c84, 0x75c50, 0x75c2c, 0x75c10, 0x75bf4, 
0x75bd8, 0x75bbc, 0x75b98, 0x75b70, 0x75a8c, 0x75a68, 0x75a4c, 0x75a30, 
0x75a14, 0x759f8, 0x759d4, 0x759ac, 0x75b0c, 0x75ae8, 0x75acc, 0x75ab0, 
0x75b4c, 0x75b30, 0x75968, 0x75914, 0x758bc, 0x75858, 0x75800, 0x757c4, 
0x75774, 0x75734, 0x75720, 0x7570c, 0x756f0, 0x756b0, 0x75670, 0x7564c, 
0x755f4, 0x7559c, 0x75578, 0x75554, 0x75500, 0x754dc, 0x75488, 0x75464, 
0x75410, 0x753ec, 0x75398, 0x75374, 0x75320, 0x752fc, 0x752a8, 0x75284, 
0x75234, 0x75210, 0x751bc, 0x75198, 0x75148, 0x75120, 0x750cc, 0x750ac, 
0x7506c, 0x7504c, 0x7500c, 0x74fe4, 0x74fa4, 0x74f7c, 0x74f3c, 0x74f14, 
0x74ed4, 0x74eb0, 0x74e60, 0x74e3c, 0x74dec, 0x74dc8, 0x74d78, 0x74d48, 
0x74d24, 0x74ce4, 0x74c98, 0x74c6c, 0x74c38, 0x74bf4, 0x74b48, 0x74ab8, 
0x74a8c, 0x749e4, 0x74944, 0x74914, 0x748cc, 0x748ac, 0x748ec, 0x7484c, 
0x7480c, 0x747dc, 0x747c4, 0x74774, 0x74744, 0x74724, 0x746f4, 0x746d4, 
0x746a4, 0x74684, 0x74650, 0x7462c, 0x73ad8, 0x73ab4, 0x73a80, 0x73a5c, 
0x73944, 0x73920, 0x738c4, 0x738a0, 0x73e9c, 0x73e48, 0x73df4, 0x73d60, 
0x73da4, 0x73d98, 0x73dc8, 0x73d60, 0x73d68, 0x7427c, 0x742f4, 0x741e8, 
0x73ff4, 0x73f9c, 0x73f58, 0x73f20, 0x73ccc, 0x0, 0x73c74, 0x73d34, 
0x73c24, 0x73bfc, 0x73bf4, 0x73b60, 0x73b0c, 0x73a34, 0x73a14, 0x0, 
0x73998, 0x73978, 0x738d8...}
#1  0x00076a00 in ffi_java_translate_args (cif=0xa9ff3c, 
rvalue=0xbffff570, avalue=0xa68dc0, user_data=0x766b0) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libffi/src/java_raw_api.c:309
No locals.
#2  0x00076a00 in ffi_java_translate_args (cif=0xbffff3e0, 
rvalue=0xbffff480, avalue=0xbffff400, user_data=0xa9ff3c) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libffi/src/java_raw_api.c:309
No locals.
#3  0x000a6944 in ffi_closure_helper_DARWIN (closure=0x76994, 
rvalue=0x0, pgr=0xbffff59c, pfr=0xbffff508) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libffi/src/powerpc/ffi_darwin.c:698
         avalue = (void **) 0xbffff480
         arg_types = (ffi_type **) 0xa9ff54
         i = 1
         avn = 1
         nf = 0
         cif = (ffi_cif *) 0xa9ff3c
         temp = 1.0235652115513625e-306
         size_al = 56
#4  0x000e08d4 in ffi_closure_ASM ()
No symbol table info available.
#5  0x00007468 in java::lang::Class::newInstance() (this=0xbffff460) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/natClass.cc:694
         meth = (_Jv_Method *) 0x1
#6  0x0004fc64 in 
gnu.gcj.convert.UnicodeToBytes.getEncoder(java.lang.String) 
(encoding=0xbffff480) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/gnu/gcj/convert/UnicodeToBytes.java:96
         *LJv1 = (java.lang.Class *) 0x1eba88
#7  0x0004fea4 in gnu.gcj.convert.UnicodeToBytes.getDefaultEncoder() () 
at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/gnu/gcj/convert/UnicodeToBytes.java:62
         *LJv0 = (java.lang.Class *) 0x1eb8d4
#8  0x00081344 in 
java.io.OutputStreamWriter.OutputStreamWriter(java.io.OutputStream) 
(this=0xa82c20, out=0xa6e810) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/io/OutputStreamWriter.java:116
No locals.
#9  0x0008080c in java.io.PrintWriter.PrintWriter(java.io.OutputStream) 
(this=0xa6e7f8, out=0xa6e810) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/io/PrintWriter.java:121
No locals.
#10 0x00080844 in java.io.PrintWriter.PrintWriter(java.io.OutputStream, 
boolean) (this=0xa6e7f8, out=0x48, autoflush=true) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/io/PrintWriter.java:104
No locals.
#11 0x0003c854 in java.io.PrintStream.PrintStream(java.io.OutputStream, 
boolean) (this=0xa6e828, out=0xa6e810, auto_flush=true) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/io/PrintStream.java:111
No locals.
#12 0x0000f20c in java.lang.System.<clinit>() () at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/System.java:146
         defaultProperties = (class java.util.Properties *) 0xa6e828
#13 0x000070d4 in java::lang::Class::initializeClass() (this=0x0) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/natClass.cc:808
         meth = (_Jv_Method *) 0x0
         self = (struct Thread *) 0xa6e828
#14 0x0000f72c in java.lang.System.getProperty(java.lang.String) 
(key=0xa80f50) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/System.java:405
         sm = (class java.lang.SecurityManager *) 0x38
#15 0x0002c3f8 in java.lang.Throwable.<clinit>() () at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/Throwable.java:403
No locals.
#16 0x000070d4 in java::lang::Class::initializeClass() (this=0x1e43ac) 
at /Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/natClass.cc:808
         meth = (_Jv_Method *) 0x0
         self = (struct Thread *) 0x1
#17 0x0000706c in java::lang::Class::initializeClass() (this=0x1e593c) 
at /Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/Class.h:279
         self = (struct Thread *) 0x1
#18 0x0000706c in java::lang::Class::initializeClass() (this=0x1e390c) 
at /Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/Class.h:279
         self = (struct Thread *) 0x1
#19 0x0000706c in java::lang::Class::initializeClass() (this=0x1e36ec) 
at /Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/Class.h:279
         self = (struct Thread *) 0x1
#20 0x0000375c in _Jv_AllocObjectNoFinalizer (klass=0x1e36ec, size=24) 
at /Volumes/xufs/gcc-cvs-clean/gcc/libjava/java/lang/Class.h:279
No locals.
#21 0x00003780 in _Jv_AllocObject (klass=0x1e36ec, size=72) at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/prims.cc:421
         obj = 0x0
#22 0x000049e4 in _Jv_CreateJavaVM(void*) () at 
/Volumes/xufs/gcc-cvs-clean/gcc/libjava/prims.cc:935
         props = 0x1e3434 ""
         p = 0x232774 "\220"
         length = 3221224632
         property_count = 0
         length = 3221224632
         length = 3221224632
#23 0x00004adc in _Jv_RunMain(java::lang::Class*, char const*, int, char 
const**, bool) (klass=0x22ef7c, name=0x0, argc=0, argv=0x1e3434, 
is_jar=true) at /Volumes/xufs/gcc-cvs-clean/gcc/libjava/prims.cc:979
         runtime = (struct Runtime *) 0xa6e810
#24 0x000024cc in _start (argc=0, argv=0x1e3434, envp=0x0) at 
/SourceCache/Csu/Csu-46/crt.c:267
         i = 2303860
         p = 0x0
         q = (char **) 0xa68dc0
         term = (void (*)(void)) 0x8fe17ef8 <__dyld__dyld_mod_term_funcs>
#25 0x00002340 in start ()
No locals.
Current language:  auto; currently c++
(gdb)



More information about the Java mailing list