Identificación de anomalías de compilación JIT

Para anomalías del compilador JIT, analice la salida de errores para determinar si se ha producido una anomalía cuando el compilador JIT intentaba compilar un método.

Si la JVM se bloquea y puede ver que la anomalía se ha producido en la biblioteca JIT (libj9jit<vm_version>.so), es posible que el compilador JIT haya fallado durante un intento de compilar un método. En sistemas Windows, la biblioteca JIT es j9jit<vm_version>.dll.
Nota: < versión_vm> es el número de versión de la máquina virtual, tal como indica el mandato java -version , pero sin puntuación, por ejemplo, en la siguiente línea de salida, la versión es29:
IBM J9 VM build 2.9, JRE 1.8.0 Linux x86-32 20161114_326069 (JIT enabled, AOT enabled)
Si ve una salida de error como la del ejemplo, puede utilizarla para identificar el método erróneo:
Unhandled exception
Type=Segmentation error vmState=0x00050000
Target=2_30_20051215_04381_BHdSMr (Linux 2.4.21-32.0.1.EL)
CPU=ppc64 (4 logical CPUs) (0xebf4e000 RAM)
J9Generic_Signal_Number=00000004 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000001
Handler1=0000007FE05645B8 Handler2=0000007FE0615C20
R0=E8D4001870C00001 R1=0000007FF49181E0 R2=0000007FE2FBCEE0 R3=0000007FF4E60D70
R4=E8D4001870C00000 R5=0000007FE2E02D30 R6=0000007FF4C0F188 R7=0000007FE2F8C290
...... Module=/home/test/sdk/jre/bin/libj9jit<vm_version>.so
Module_base_address=0000007FE29A6000
...... 
Method_being_compiled=com/sun/tools/javac/comp/Attr.visitMethodDef(Lcom/sun/tools/javac/tree/
JCTree$JCMethodDecl;)
Las líneas importantes son:
vmState=0x00050000
Indica que el compilador JIT está compilando código. Para obtener una lista de los números de código vmState , consulte la tabla de distintivos de VM en la sección GPINFO de volcado Java.
Module=/home/test/sdk/jre/bin/libj9jit< versión_vm>.so
Indica que el error se ha producido en libj9jit<vm_version>.so, el módulo de compilador JIT.
Method_being_compiled=
Indica el método Java™ que se está compilando.
Si la salida no indica el método anómalo, utilice la opción verbose con los siguientes valores adicionales:
-Xjit:verbose={compileStart|compileEnd}

Estos valores de verbose informan cuando el JIT empieza a compilar un método y cuando finaliza. Si el JIT falla en un método determinado (es decir, empieza a compilar, pero se bloquea antes de que pueda finalizar), utilice el parámetro exclude para excluirlo de la compilación (consulte Localización del método anómalo). Si la exclusión del método impide el bloqueo, tendrá un método alternativo que podrá utilizar mientras el equipo de servicio corrige el problema.