Когда виртуальная машина Sun Java дает сбой, она обычно создает файл hs_err_pid * (отчет о сбое). Однако у нас есть сервер Open SuSE Linux, на котором происходит сбой Java, не оставляя отчета о сбое. Создается дамп ядра (SIGSEGV), но нет файла hs_err_pid *.
Существуют ли обстоятельства, при которых Sun vm не создает отчет о сбое? Или: как мне его включить.
Моя версия java:
> java -version
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)
ps: Это не проблема прав доступа к файловой системе. В этом случае виртуальная машина создаст отчет о сбое в /tmp
.
Вы можете найти его среди вариантов виртуальной машины:
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp#DebuggingOptions
-XX: ErrorFile =. / Hs_err_pid.log В случае возникновения ошибки сохраните данные об ошибке в этот файл. (Представлено в 6.)
Поэтому попробуйте запустить свое приложение с:
java -XX: ErrorFile = / tmp / hs_err_pid.log -other_options yourapp.jar
И если это создаст дамп, все в порядке.
Проблема заключалась в том, что сбой был очень серьезным, что даже процедуры отчетов о сбоях ничего не могли сделать.
Включение дампа ядра и анализ дампа ядра системы привели к первопричине.