Как анализировать файл аварийной ситуации JVM hs_err_pidXYZ.log
При работе с webapp в Eclipse и Tomcat (wtp) tomcat сбой и создание файла: hs_err_pid20216.log
Я пытался использовать Eclipse MAT для анализа файла, но MAT не распознает файл как что-то, что он может обрабатывать, я также пробовал DAT, и это было то же самое. Он не будет отображаться в диалоговом окне открытого файла.
Что это за файл?
Что я должен использовать для его анализа?
Должен ли я внести изменения в этот файл, чтобы эти инструменты могли анализировать его.
Файл журнала доступен как GitHub gist
UPDATE:
См. ответ @Dan Cruz для получения дополнительной информации о том, как обращаться с файлом hs_err_pidXYZ.log. Любопытно, что причиной крушения был Джексон, смущенный циклическими отношениями (двунаправленный один-ко-многим), но это еще одна история...
Ответы
Ответ 1
Что это за файл?
Это файл журнала ошибок HotSpot в текстовом формате.
Что я должен использовать для его анализа?
Начните с загрузки исходного пакета OpenJDK 6. Поиск по файлам hotspot *.cpp
для строк в журнале ошибок. Просмотрите исходные файлы для объяснения того, что содержит журнал ошибок.
Например, используя источники OpenJDK 7, вы можете найти siginfo
(информацию о сигнале процесса операционной системы) в методе os::print_siginfo()
os_linux.cpp
, Registers
(значения регистров CPU) в методе os::print_context()
os_linux_x86.cpp
и т.д.
Должен ли я вносить изменения в этот файл, так что эти инструменты смогут его проанализировать.
Это было бы невозможно, так как Eclipse Memory Analyzer требует кучный файл, который не является журналом ошибок HotSpot.
Ответ 2
Это текстовый файл. Откройте его в редакторе и попытайтесь понять, что это значит.
Ответ 3
https://fastthread.io дает хорошо описательный анализ файла. ему просто нужно загрузить его, и он выдаст следующие элементы:
- Причина аварии
- Рекомендуемые решения
- Активная тема (при сбое приложения)
- Расположение основного дампа
- Все темы
- ...