I am getting the following exception when trying to open HPROF file (created by Debug.dumpHprofData
) with Memory Analyzer:
java.io.IOException: Unknown HPROF Version (JAVA PROFILE 1.0.3)
at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:124)
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:203)
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:114)
at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:143)
at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:123)
at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.java:56)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
How do I resolve this?
The
hprof
file you get from Android has android specific format. You should converthprof
file take from Android OS into standardhprof
format. For this you can usehprof-conv
tool that is located atAndroidSDK/tools/hprof-conv
.For example:
And then open mat.hprof in Memory Analyzer.
EDIT: hprof-conv might be located under
AndroidSDK/platform-tools/
in some bundles.If you are using Eclipse, just change the following:
hprof-conv
tool location got changed.It is now located at
AndroidSDK/platform-tools/hprof-conv