I have a Java app that makes use of some native code, and it’s faulting. I want to find out where it’s faulting, but I’m not sure how to read the hs_err_pid dump file:
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
Basically, what are the ‘j’ frames pointing to? Is V+158 referring to the bytecode offset in the class? How can I trace back from this to the source lines in play?
Actually, I’d love a general guide to grokking these dumps. That’d be fantastic, too.
For a general guide have a look at these two links Fatal Error Log Troubleshooting and Crash Course on JVM Crash Analysis