Как мне интерпретировать эту ошибку JVM?
-
09-09-2019 - |
Вопрос
У меня есть Java-приложение, использующее некоторый собственный код, и оно дает сбой.Я хочу узнать где это ошибка, но я не уверен, как прочитать файл дампа 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
По сути, на что указывают кадры «j»?Является V+158
Ссылаясь на смещение байт -кода в классе?Как я могу отследить от этого до исходных линий в игре?
Вообще-то, мне бы хотелось получить общее руководство по поиску этих свалок.Это тоже было бы здорово.
Решение
Общее руководство можно найти по этим двум ссылкам. Устранение неполадок журнала фатальных ошибок и Ускоренный курс по анализу сбоев JVM
Другие советы
я тоже был в замешательстве, что может означать "V+158"??однако объяснение простое: «V» — это тип возвращаемого значения метода, который является частью описания метода.(описание состоит из имени пакета, имени класса, имени метода, типов параметров, принимаемых методом, и типа возвращаемого значения) «V» означает «void».
+158 - это так называемый "индекс байт-кода" - вы были правы.