GCJ 4.03 crash on Windows 98 continued

Jesper Juul / Soup Games jesper@soupgames.net
Sun May 7 20:44:00 GMT 2006


For the record, I have gotten a bit deeper on the issue of why gcj 
4.0x executables crash on Windows 98.

The crash invitably occurs in java::lang:Class:finalize 
(natClass.cc). Below is a sample program, stack trace from gdb, and 
garbage collection log.

I am trying to look into this, but any suggestions would be appreciated.


Thanks!

-Jesper

****

public class Test {
public static void main(String args[])
{
  System.out.println("It's the java test!\n");}
}

*

Program received signal SIGSEGV, Segmentation fault.
0x0041df00 in java::lang::Class::finalize (this=0x22afd10)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natClass.cc:710
710     /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natClass.cc: No such file or
directory.
         in /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natClass.cc
Current language:  auto; currently c++

(gdb) backtrace
#0  0x0041df00 in java::lang::Class::finalize (this=0x22afd10)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natClass.cc:710
#1  0x0041cdaf in _Jv_FinalizeObject (obj=0x22afd10)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natObject.cc:121
#2  0x00514502 in GC_invoke_finalizers ()
     at /usr/gccsrcdir/gcc-4.0.3/boehm-gc/finalize.c:787
#3  0x0042947a in GC_generic_malloc (lb=36, k=0)
     at /usr/gccsrcdir/gcc-4.0.3/boehm-gc/malloc.c:188
#4  0x0042966b in GC_malloc_atomic (lb=36)
     at /usr/gccsrcdir/gcc-4.0.3/boehm-gc/malloc.c:270
#5  0x004022b2 in _Jv_AllocString (len=8) at ./include/java-gc.h:59
#6  0x00428445 in _Jv_NewStringUtf8Const (str=0x8fa2e8)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/gcj/cni.h:42
#7  0x0042c375 in _Jv_Linker::ensure_class_linked (klass=0x772e20)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/link.cc:1436
#8  0x0042aeba in _Jv_Linker::wait_for_state (klass=0x772e20, state=9)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/link.cc:1726
#9  0x005127cb in java::lang::VMClassLoader::resolveClass (klass=0x772e20)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natVMClassLoader.cc:44
#10 0x0041f8b7 in java::lang::Class::initializeClass (this=0x772e20)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natClass.cc:728
#11 0x004cf200 in java.lang.reflect.Modifier.isAbstract(int) (mod=1)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/reflect/Modifier.java:177
#12 0x0041fe3c in java::lang::Class::newInstance (this=0x7c7530)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natClass.cc:690
#13 0x00566746 in gnu.gcj.convert.UnicodeToBytes.getEncoder(java.lang.String) (
     encoding=0x22adc00)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/gnu/gcj/convert/UnicodeToBytes.java:97
#14 0x005669ca in gnu.gcj.convert.UnicodeToBytes.getDefaultEncoder() ()
     at /usr/gccsrcdir/gcc-4.0.3/libjava/gnu/gcj/convert/UnicodeToBytes.java:62
#15 0x00468007 in java.io.PrintStream.PrintStream(java.io.OutputStream, boolean
  (this=0x22ebf90, out=0x22e7a60, auto_flush=1)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/io/PrintStream.java:118
#16 0x0040f2ac in java.lang.System.<clinit>() ()
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/System.java:162
#17 0x0041f856 in java::lang::Class::initializeClass (this=0x728960)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natClass.cc:773
#18 0x00414bd4 in java.lang.System.getProperty(java.lang.String) (
     key=0x22aef00)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/System.java:423
#19 0x0041a94e in java.lang.VMClassLoader.getSystemClassLoader() ()
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/VMClassLoader.java:342
#20 0x0041abc6 in java.lang.ClassLoader.<clinit>() ()
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/ClassLoader.java:156
#21 0x0041f856 in java::lang::Class::initializeClass (this=0x7308c0)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/natClass.cc:773
#22 0x004031f4 in _Jv_CreateJavaVM (vm_args=0x0)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/java/lang/Class.h:581
#23 0x00403445 in _Jv_RunMain (vm_args=0x0, klass=0x7260a0, name=0x0, argc=1,
     argv=0x1e60510, is_jar=false)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/prims.cc:1321
#24 0x0040362e in _Jv_RunMain (klass=0x7260a0, name=0x0, argc=1,
     argv=0x1e60510, is_jar=0) at 
/usr/gccsrcdir/gcc-4.0.3/libjava/prims.cc:1367
#25 0x0040364c in JvRunMain (klass=0x7260a0, argc=1, argv=0x1e60510)
     at /usr/gccsrcdir/gcc-4.0.3/libjava/prims.cc:1373
#26 0x00401317 in main (argc=1, argv=0x1e60510)

******
Increasing heap size by 65536 after 0 allocated bytes
Initiating full world-stop collection 1 after 0 allocd bytes
--> Marking for collection 1 after 0 allocd bytes + 0 wasted bytes
Found new system malloc AllocationBase at 0x1e60000
Collection 0 finished ---> heapsize = 65536 bytes
World-stopped marking took 61 msecs
Complete collection took 65 msecs
Grew fo table to 1 entries
Grew fo table to 2 entries
Grew fo table to 4 entries
Increasing heap size by 65536 after 11388 allocated bytes
Grew fo table to 8 entries
Grew fo table to 16 entries
Grew fo table to 32 entries
Grew fo table to 64 entries
Grew fo table to 128 entries
Increasing heap size by 65536 after 30772 allocated bytes
Grew fo table to 256 entries
Initiating full world-stop collection 2 after 75524 allocd bytes
--> Marking for collection 2 after 75524 allocd bytes + 13036 wasted bytes
Found new system malloc AllocationBase at 0x1d50000
Collection 1 finished ---> heapsize = 196608 bytes
World-stopped marking took 13 msecs
Complete collection took 18 msecs



More information about the Java mailing list