使用JProfiler监控JAVA程序内存,JVM报错:
A fatal error has been detected by the Java Runtime Environment:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007718b81a, pid=8540, tid=0x0000000000000fa4
JRE version: Java(TM) SE Runtime Environment (8.0_162-b12) (build 1.8.0_162-b12)
Java VM: Java HotSpot(TM) 64-Bit Server VM (25.162-b12 mixed mode windows-amd64 compressed oops)
Problematic frame:
V [jvm.dll+0x13b81a]
Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
If you would like to submit a bug report, please visit:
http://bugreport.java.com/bugreport/crash.jsp
--------------- T H R E A D ---------------
原因:
Minidump是Windows上的程序crash的时候可以写出的一种小型crash dump,会记录导致crash的错误的摘要信息,以便开发者可以事后调查crash的原因。HotSpot VM在非server版的(也就是client版的)Windows上选择默认不写出minidump。
解决:
要让HotSpot VM在client版Windows上写出minidump,请指定 -XX:+CreateMinidumpOnCrash,这样HotSpot VM在crash时就会调用Windows的MiniDumpWriteDump()函数写出minidump。