我发现可以使用java命令参数进行堆转储:-XX:+HeapDumpOnOutOfMemoryError在OutOfMemory上写入堆转储Error,-XX:+HipDumponCtrlBreak在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。
你能带我到这儿来吗?提前感谢!
您可以从崩溃产生的核心文件中提取HPROF堆转储:
jmap -dump:format=b,file=heap.hprof ${path_to_java_exe} ${path_to_core}