需要在JVM EXCEPTION_ACCESS_VIOLATION之后进行堆转储

时间:2013-11-21 03:29:39

标签: java memory heap-dump oql

我发现可以使用java命令参数进行堆转储:-XX:+ HeapDumpOnOutOfMemoryError将堆转储写入OutOfMemoryError和-XX:+ HeapDumpOnCtrlBreak将堆转储与CTRL + BREAK上的线程转储一起写入。

现在,当我收到以下错误时,我需要堆转储:

A fatal error has been detected by the Java Runtime Environment:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x5fb62488, pid=6332, tid=6336

我正在获取hs_err_pid6332.log,但我需要HPROF格式的堆转储,以便我可以在内容上运行OQL。

你可以在这里指导我吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

您可以从崩溃产生的核心文件中提取HPROF堆转储:

jmap -dump:format=b,file=heap.hprof ${path_to_java_exe} ${path_to_core}