我一直在尝试使用Jmap在给定的Java进程上发生OutOfMemoryError时转储堆文件。
我已经能够转储堆文件,但我想将HeapDumpOnOutOfMemoryError标志添加到Jmap中,但我认为我做错了什么。我做错了什么吗?我试过了:
jmap -J-XX:+HeapDumpOnOutOfMemoryError -dump:live,file=/home/eduardo2/dumpfile.hprof 18763
当我运行上面的代码时,它只显示以下内容--但它不会等待OutOfMemoryError:
>> Dumping heap to /home/eduardo2/dump21file.hprof ...
>> Heap dump file created
发布于 2018-10-25 07:44:14
你混淆了两个不同的东西:
jmap
从正在运行的进程捕获堆转储,就像您做的那样。有关您期望抛出OOM
的java进程,请参阅https://docs.oracle.com/javase/7/docs/technotes/tools/share/jmap.html.-XX:+HeapDumpOnOutOfMemoryError
。如果发生异常,将向当前目录写入转储。请参阅https://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/clopts.html#gbzrrhttps://stackoverflow.com/questions/52979300
复制相似问题