Java Can';t使用Eclipse内存分析器打开HPROF文件
仅提示我以下消息:“无效的文件头” 堆栈转储:Java Can';t使用Eclipse内存分析器打开HPROF文件,java,heap,dump,Java,Heap,Dump,仅提示我以下消息:“无效的文件头” 堆栈转储: java.io.IOException: Invalid HPROF file header. at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:135) at org.eclipse.mat.hprof.Pass1Parser.read(Pass1Parser.java:69) at org.eclipse.mat.hpr
java.io.IOException: Invalid HPROF file header.
at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:135)
at org.eclipse.mat.hprof.Pass1Parser.read(Pass1Parser.java:69)
at org.eclipse.mat.hprof.HprofIndexBuilder.fill(HprofIndexBuilder.java:65)
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:184)
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:102)
at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:114)
at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:94)
at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.java:54)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
HPROF文件是在Linux机器上生成的
不起作用,问题也很复杂,但确实起作用了
我该怎么做才能让它工作?如果您使用的是java服务包装器,那么JVM很可能在完成堆转储的编写之前就被杀死了。您可能希望为服务包装器设置一个属性,以便让vm有更多的时间完成堆转储。我也遇到了同样的问题。添加标志“format=b”修复了该问题。显然,内存分析器只能读取二进制文件。转储是使用不兼容的JVM进行的吗?如果jhat不起作用,我会认为dump.Heapdump格式有问题?Binary vs text.AM有同样的问题,你在哪里添加了“format=b”?