Получить информацию о сбое JVM - PullRequest
1 голос
/ 22 сентября 2010

Есть ли в любом случае, чтобы приложение java дамп файл с информацией о том, почему JVM потерпел крах?

Ответы [ 5 ]

1 голос
/ 22 сентября 2010

Если JVM дает сбой из-за ошибки в собственном коде (то есть код, доступ к которому осуществляется через JNI - не обязательно сам JVM), JVM (обычно) создает дамп кучи.По умолчанию он создается в файле с именем hs_err_pidXXXX.log в рабочем каталоге JVM (XXXX - идентификатор процесса).

Если вы имеете в виду сбой из самой программы Java, здесь Хорошая статья о том, как настроить обработчики для необработанных исключений.Затем вы можете записать их (и связанную трассировку стека) в файл.

1 голос
/ 22 сентября 2010

Если вы не имеете в виду, что фактическая JVM потерпела крах с программной ошибкой, но более того, вы получили исключение, которое неожиданно остановило вашу программу, вы можете использовать try-catch в своем основном методе:

public static void main(String args[]) {
  try {
    doStuff();
  } catch (Throwable e) {
    e.printStackTrace();
    logStuff(e);
  }
}
0 голосов
/ 22 сентября 2010

В jdk у вас есть инструмент под названием jmap для сброса памяти и jhat для анализа объектов.

0 голосов
/ 22 сентября 2010

Вы можете использовать инструмент DebugDiag или IBM Memory Analyzer . Есть много учебных пособий по последнему. Надеюсь, это поможет.

0 голосов
/ 22 сентября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...