我正在尝试使用 Eclipse 内存分析器工具 (MAT) 获取堆转储。我正在运行 Weblogic 10.3 应用程序服务器。它是安装了 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)
感谢任何帮助。
谢谢, 席德
最佳答案
您可以尝试的一件事是使用 jmap
保存转储并在 MAT 中打开它。
使用jps
获取进程ID(pid)。
jmap -dump:live,format=b,file=myfile.hprof <processid-from-above>
关于java - Eclipse 内存分析器 - 尝试获取堆转储时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6047774/