当 Sun Java VM 崩溃时,它通常会创建一个 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:不是文件系统访问权限的问题。在这种情况下,vm 将在/tmp
.
您可以在 VM 选项中找到它:
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
如果这会创建转储,那就没问题了。
问题是,崩溃非常严重,甚至崩溃报告例程也无能为力。
启用核心转储并分析系统核心转储导致了根本原因。