09 May, 2008

Fixing the Sun Java Crash in Eclipse on 64 bit Linux

After a lot of easy reproducible crashes of the Sun JVM when running eclipse, I found a way of fixing them, add -XX:-PrintCompilation to the -vmargs of your eclipse.ini. When eclipse crashes, take a look at the hs_err_pid<pid>.log file. Somewhere inside you will find a line like this (search for Current CompileTask):
Current CompileTask:
C2:2393      org.eclipse.jdt.internal.compiler.lookup.ParameterizedMethodBinding.<init>(Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTyp
eBinding;Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;)V (435 bytes)
Now you can exclude the method from being compiled by the HotSpot:
-XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding,<init>
My eclipse.ini looks like this:
-showsplash
org.eclipse.platform
-vmargs
-Xms256m
-Xmx1024m
-XX:MaxPermSize=128m
#-XX:-PrintCompilation
-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith
-XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding,<init>
Some more HotSpot VM Options could be found here.