在Java Eclipse中,在断点上创建堆转储文件

3
在Eclipse中如何在断点处生成堆转储?
我的Java程序有两个版本,使用两种不同的方法完成相同的任务。 其中一个方法会遇到堆空间异常,但另一个则不会。
我能够通过设置VM参数-XX:+ HeapDumpOnOutOfMemoryError获取遇到错误的那个堆转储。对于使用没有出错的方法的程序,我希望在某个断点处获取堆转储。 我该如何做到这一点?
2个回答

7
  1. 安装Eclipse内存分析插件。
  2. 设置您的调试点并在调试模式下启动应用程序,直到达到您想要进行Heap-Dump的点。
  3. 进入内存分析透视图(一旦安装插件,您将找到此透视图)。

内存分析透视图

  1. 然后点击获取Heap Dump按钮,您将获得该调试点之前的所有Heap Dump。

获取Heap Dump


2
如果您有一个空的本地进程列表,请尝试按Configure,选择HPROF jmap dump provider并将**-jdkhome设置为您的JDK安装目录(而不是**其中的bin目录)。我花了将近一个小时才找到这个解决方案。 - Oliver Hoffmann

2
您可以随时使用jvisualvm连接到进程,然后右键单击并执行Heap Dump。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接