Могу ли я принудительно создать файл журнала сбоя JVM?

Файл журнала сбоя JVM содержит всевозможную полезную информацию для отладки, такую ​​как загруженные разделяемые библиотеки и всю среду. Могу ли я заставить JVM сгенерировать один из них программно; либо путем выполнения кода, который приводит к сбою, либо другим способом? Или получить доступ к той же информации другим способом?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
11
0
9 598
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я почти уверен, что это можно сделать с помощью IBM JDK, поскольку некоторое время назад я экспериментировал с их анализатором стека. Один из вариантов принудительного создания дампа - это просто вызвать исключение outOfMemoryException.

Эти инструменты могут дать некоторые подсказки http://www.ibm.com/developerworks/java/library/j-ibmtools1/

Ссылка, похоже, касается инструмента, доступного только клиентам IBM, к которым я не принадлежу.

DJClayworth 03.12.2008 19:54

Взгляните на Инструменты разработки JDK, в частности Инструменты для устранения неполадок для сброса кучи, печати информации о конфигурации и т. д.

Из инструментов jstack кажется наиболее многообещающим в форме jstack -l -F -m <pid> (-F не нужен, если процесс не завис). Это дает вам стеки всех потоков в смешанном режиме (Java и собственный) и заблокированные синхронизаторы, даже если процесс завис.

PJTraill 28.05.2015 17:10

Или см. docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/‌… для Oracle Java 8 (предыдущие ссылки - 6, но, вероятно, не сильно отличается по содержанию).

PJTraill 28.05.2015 17:16
Ответ принят как подходящий

Вы можете попробовать выбросить OutOfMemoryError и добавить аргумент jvm -XX: + HeapDumpOnOutOfMemoryError. Это новинка версии 1.6, как и другие инструменты, предложенные МакДауэллом. http://blogs.oracle.com/watt/resource/jvm-options-list.html

См. Также stackoverflow.com/questions/5576672/…

jhclark 07.04.2012 19:30

Этот другой вопрос, похоже, касается дампа ядра, который можно отправить разработчику JVM, например IBM, а не hs_err_pid*.log.

PJTraill 28.05.2015 16:59

Другие вопросы по теме