Pregunta

Tengo una aplicación Java que hace uso de un poco de código nativo, y de fallas. Quiero averiguar donde Es fallas, pero no estoy seguro de cómo leer el archivo de volcado hs_err_pid:

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x256cbc]
V  [libjvm.so+0x25df69]
V  [libjvm.so+0x25dbac]
V  [libjvm.so+0x25e8c8]
V  [libjvm.so+0x25e49f]
V  [libjvm.so+0x16fa3e]
j  br.com.cip.spb.single.SPBRequestApplicationController.processJob(Lcom/planet/core360/docgen/ProcessingEnvironment;Lcom/planet/core360/dsmv2/processing/ApplicationDataJob;)V+158
j  com.planet.core360.cgen.CgenProcessor.processJob(Ljava/lang/String;Lcom/planet/core360/docgen/ProcessingEnvironment;Lcom/planet/core360/dsmv2/processing/ApplicationDataJob;)V+108
j  com.planet.core360.cgen.CgenProcessor.processJob(Ljava/lang/String;Lcom/planet/core360/docgen/ProcessingEnvironment;Lcom/planet/core360/dsmv2/processing/ScheduledJob;)V+7
v  ~StubRoutines::call_stub
V  [libjvm.so+0x17af0c]
V  [libjvm.so+0x28b9d8]
V  [libjvm.so+0x17ad3f]
V  [libjvm.so+0x1a58a3]
V  [libjvm.so+0x18bc24]
C  [cgen+0xa6d6]
C  [cgen+0xae1e]  cgen_process_job+0x336
C  [cgen+0x10442]
C  [cgen+0x7714]
C  [cgen+0x38216]
C  [cgen+0x3a29d]
C  [cgen+0x37e3c]
C  [cgen+0x7558]
C  [libc.so.6+0x166e5]  __libc_start_main+0xe5

Básicamente, lo que son los 'j' enmarca señalando? Se refería a la V+158 bytecode compensado en la clase? ¿Cómo puedo rastrear de esto a la fuente líneas en juego?

En realidad, me encantaría una guía general para Grokking estos vertederos. Eso sería fantástico, también.

¿Fue útil?

Solución

Para una guía general echar un vistazo a estos dos enlaces error fatal recapitulación de los problemas y Crash curso sobre JVM Crash Análisis

Otros consejos

i estaba confundido demasiado, lo que podría "V + 158" significa ?? sin embargo explicación es simple, "V" es el método de tipo de retorno y es parte de la descripción del método. (La descripción es consiste en nombre del paquete, nombre de la clase, nombre del método, tipos param tomada por el método y el tipo de retorno) "V" significa "vacío".

158 se llama así "índice de código de bytes" -. Tenías razón

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top