获取有关JVM崩溃的信息

时间:2010-09-22 01:27:21

标签: java jvm

有没有让java应用程序转储一个文件,其中包含有关JVM崩溃原因的信息?

5 个答案:

答案 0 :(得分:1)

如果你不是说实际的JVM因程序错误而崩溃,但更多的是你得到了一个意外导致程序失效的异常,你可以在main方法中使用try-catch:

public static void main(String args[]) {
  try {
    doStuff();
  } catch (Throwable e) {
    e.printStackTrace();
    logStuff(e);
  }
}

答案 1 :(得分:1)

如果JVM由于本机代码中的错误而崩溃(即,通过JNI访问的代码 - 不一定是JVM本身),JVM(通常)会产生堆转储。默认情况下,它是在JVM的工作目录中名为hs_err_pidXXXX.log的文件中创建的(XXXX是进程ID)。

如果您的意思是来自Java程序本身的崩溃,here是一篇关于如何为未捕获的异常设置处理程序的好文章。然后,您可以将它们(以及关联的堆栈跟踪)记录到文件中。

答案 2 :(得分:0)

答案 3 :(得分:0)

您可以使用DebugDiag工具或IBM Memory Analyzer。后者有很多关于后者的教程。希望这会有所帮助。

答案 4 :(得分:0)

在jdk中,你有一个名为jmap的工具来转储内存和jhat来分析对象。