我发现可以使用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。
你可以在这里指导我吗?提前谢谢!答案 0 :(得分:2)
您可以从崩溃产生的核心文件中提取HPROF堆转储:
jmap -dump:format=b,file=heap.hprof ${path_to_java_exe} ${path_to_core}