JVM崩溃。如何获取错误日志或核心转储

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM崩溃。如何获取错误日志或核心转储相关的知识,希望对你有一定的参考价值。

我有一个使用jna调用本机dll的Java应用程序。执行我在Java中的回调并抛出“ java平台se二进制文件已停止”对话框后,程序在中间使JVM崩溃。 Java控制台日志没有用,那里什么也没有。如何在窗口中获取核心转储或其他有用的日志,以找出问题及其原因。在临时文件夹中寻找hs_err日志,但找不到它。

答案

hs_err文件通常写入JVM进程的“当前目录”中。如果该目录不可被用户写入,则将文件写入一个临时目录。您还可以告诉JVM将致命错误报告写入指定的文件。

仅当“核心文件大小” ulimit(或等效值)足够大且文件空间足够时,才会写入核心转储。默认ulimit为零。

更多信息:

另一答案

使用-XX:ErrorFile指定错误文件。

来自Location of Fatal Error Log

[要指定将在何处创建日志文件,请使用产品标记-XX:ErrorFile = file,其中file代表日志文件位置的完整路径。

另外,这个:

如果未指定-XX:ErrorFile = file标志,则默认日志文件名称为hs_err_pid.log,其中pid是进程的PID。

以上是关于JVM崩溃。如何获取错误日志或核心转储的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 Java.exe/jvm.dll 的符号文件以分析崩溃核心转储文件?

Sun JDK 能否在 JVM 崩溃时生成核心/堆转储文件?

如何分析来自 Java 核心转储的信息? [关闭]

Linux 上的核心转储文件:如何获取打开文件的信息?

如何让android打印掉崩溃系统应用程序的核心转储?

如果应用程序在 GC 中,如何可靠地获取 JVM 核心转储?