Eclipse内存分析器 - 尝试获取堆转储时出错

时间:2011-05-18 16:12:57

标签: java memory weblogic-10.x heap-dump

我正在尝试使用Eclipse Memory Analyzer Tool(MAT)获取堆转储。我正在运行Weblogic 10.3 app服务器。这是一个安装了32位Java的Windows XP操作系统。当我尝试使用MAT为运行Weblogic的进程获取堆转储时,我收到以下错误:

Error creating heap dump. jmap exit code = 1
Exception in thread "main" java.io.IOException: Premature EOF
    at sun.tools.attach.HotSpotVirtualMachine.readInt(HotSpotVirtualMachine.java:226)
    at sun.tools.attach.WindowsVirtualMachine.execute(WindowsVirtualMachine.java:88)
    at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:195)
    at sun.tools.attach.HotSpotVirtualMachine.dumpHeap(HotSpotVirtualMachine.java:162)
    at sun.tools.jmap.JMap.dump(JMap.java:224)
    at sun.tools.jmap.JMap.main(JMap.java:122)

Error creating heap dump. jmap exit code = 1
Exception in thread "main" java.io.IOException: Premature EOF
    at sun.tools.attach.HotSpotVirtualMachine.readInt(HotSpotVirtualMachine.java:226)
    at sun.tools.attach.WindowsVirtualMachine.execute(WindowsVirtualMachine.java:88)
    at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:195)
    at sun.tools.attach.HotSpotVirtualMachine.dumpHeap(HotSpotVirtualMachine.java:162)
    at sun.tools.jmap.JMap.dump(JMap.java:224)
    at sun.tools.jmap.JMap.main(JMap.java:122)

感谢任何帮助。

谢谢, SID

2 个答案:

答案 0 :(得分:2)

您可以尝试的一件事是使用jmap保存转储并在MAT中打开它。

使用jps获取进程ID(pid)。

jmap -dump:live,format=b,file=myfile.hprof <processid-from-above>

答案 1 :(得分:1)

我在Windows上遇到了同样的问题,我通过以管理员身份打开cmd.exe得以解决。