0

我已经添加-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="C:\hd.hprof"到默认 VM 参数,但我不知道为什么OutOfMemoryError抛出时没有生成堆转储文件。谁能阻止我?

更多细节:

  • 我的 JRE 版本是 1.7.0_02

  • 堆转储第一次生成一次,但是当我更改 HeapDumpPath 时,它不再生成。已将 HeapDumpPath 恢复为与第一次相同,但仍未生成堆转储

  • 文件C:\hd.hprof已存在。

  • 下图是我强制关闭 Eclipse 时的 Eclipse 对话框。在那个对话框中,我可以看到 eclipse 包含了我的参数 ]![下图是我强制关闭 eclipse 时的 eclipse 对话框。在那个对话框中,我可以看到 eclipse 包含了我的论点

在此处输入图像描述

谢谢。

4

1 回答 1

1

有些抛出的堆溢出并不是真正的溢出,而是计算后直接抛出的。实际上并没有溢出,所以不会产生堆转储。比如使用DirectByteBuffer的时候

于 2020-09-24T12:29:26.553 回答