Java JVM崩溃后如何创建堆转储文件

Java JVM崩溃后如何创建堆转储文件,java,jvm-crash,heap-dump,Java,Jvm Crash,Heap Dump,当JVM崩溃时,会在工作目录中创建堆转储文件(hs_err_pidXXXX.log)。我想知道谁创建了这个文件。JVM崩溃意味着它已异常终止。所以它肯定不会创建这个文件。那么这个文件是如何创建的呢 我们还可以控制此文件中显示的信息。如果我想将线程转储和堆转储都放在一个文件(hs_err_pidXXXX.log)中,有可能吗?如果是,怎么做?基本上,我的首要任务是识别导致JVM崩溃的函数(或stacktrace),并将其存储在创建的堆转储文件中。您已经在崩溃时获得了堆转储。另外,要获取线程转储,请

当JVM崩溃时,会在工作目录中创建堆转储文件(hs_err_pidXXXX.log)。我想知道谁创建了这个文件。JVM崩溃意味着它已异常终止。所以它肯定不会创建这个文件。那么这个文件是如何创建的呢


我们还可以控制此文件中显示的信息。如果我想将线程转储和堆转储都放在一个文件(hs_err_pidXXXX.log)中,有可能吗?如果是,怎么做?基本上,我的首要任务是识别导致JVM崩溃的函数(或stacktrace),并将其存储在创建的堆转储文件中。

您已经在崩溃时获得了堆转储。另外,要获取线程转储,请使用以下JVM参数

 -XX:OnOutOfMemoryError="kill -3 %p"

注意:这很可能会在不同的文件或控制台中创建线程转储。

您已经在崩溃时获得堆转储。另外,要获取线程转储,请使用以下JVM参数

 -XX:OnOutOfMemoryError="kill -3 %p"

注意:这很可能会在不同的文件或控制台中创建线程转储。

许多操作系统允许进程在某些特殊情况下注册处理程序。例如,在UNIX中有一个


因此,JVM本身可能会写入日志。

许多操作系统允许进程在某些异常情况下注册处理程序。例如,在UNIX中有一个


因此,JVM本身可能会写入日志。

“它肯定不会创建此文件。”你肯定弄错了。“它肯定不会创建此文件。”你肯定弄错了。那么这与我们可以用于信号处理的“java关机挂钩”类似吗?@Ankur yes,类似但在更深的层次。那么这类似于我们可以用于信号处理的“java关机挂钩”吗?@Ankur是的,类似但在更深的层次。