打开堆转储时出错

时间:2015-06-16 18:49:00

标签: eclipse jboss visualvm heap-dump

我无法使用独立的eclipse内存分析器或visualVM打开堆转储。我尝试过两种不同的hprof文件。 VisualVM只是在加载堆转储时挂起,而eclipse内存分析器给出了以下错误。

Error opening heap dump 'java_pid15751.hprof'. Check the error log for further details.
Error opening heap dump 'java_pid15751.hprof'. Check the error log for further     details.
Not a HPROF heap dump (java.io.IOException)
Not a HPROF heap dump

我正在使用Windows 7 32位。应用程序服务器在jboss 7.1.1上,下面是java版本。 OpenJDK运行时环境(IcedTea6 1.10.6)(rhel-1.43.1.10.6.el6_2-x86_64) OpenJDK 64位服务器VM(内置20.0-b11,混合模式)

2 个答案:

答案 0 :(得分:0)

这些堆转录是由于JBoss中的内存不足问题而导致的,其中采用了自动堆。我使用jmap取一个,它打开很好。我认为堆转储由于某种原因已被破坏。

答案 1 :(得分:0)

我怀疑你的堆转储文件已损坏。你是如何捕获堆转储文件的? This article概述了捕获堆转储的几种不同选项。 ' JMAP' JDK中存在的工具是捕获堆转储的一个很好的工具。您可以通过传递以下命令来调用它:

  jmap -dump:format=b,file=<heap-dump-file-path> <process-id>

其中
heap-dump-file-path:是将堆转储写入的文件路径 process-id:是Java Process Id,应该捕获其堆转储

例:
jmap -dump:format = b,file = / opt / tmp / heapdump.bin 37320