当Sun Java虚拟机崩溃时,通常会创build一个hs_err_pid *文件(崩溃报告)。 但是我们有一个Open SuSE Linux服务器,在这个服务器上,java崩溃而不会在后面留下崩溃报告。 创build一个核心转储(SIGSEGV),但不包含hs_err_pid *文件。
有没有情况下,Sun公司不会创build一个崩溃报告? 或者:我如何启用它。
我的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创build崩溃报告。
您可以在VM选项中find它:
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
如果这造成转储,你没事。
问题是,事故非常严重,即使是事故报告程序也无能为力。
启用核心转储和分析系统核心转储是导致根本原因的原因。