2009-12-14 11 views
4

Eclipse Memory Analyzer M'affiche uniquement le message suivant: "Invalid HPROF En-tête de fichier".Impossible d'ouvrir le fichier HPROF avec Eclipse Memory Analyzer

décharge de la pile:

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) 

Le fichier HPROF a été fait sur une machine Linux.

HAT ne fonctionne pas et le IBM HeapAnalyzer est compliqué, mais a fonctionné.

Que puis-je faire pour le faire fonctionner?

+0

Le vidage a-t-il été effectué avec une machine virtuelle Java incompatible? Si ça ne marche pas, je suppose que quelque chose ne va pas avec la décharge. –

+0

Problème de format Heapdump? Binaire vs texte. – shoover

Répondre

1

Si vous utilisez un wrapper de service Java, il est probable que la JVM ait été supprimée avant de pouvoir terminer l'écriture du tas de mémoire. Vous souhaiterez peut-être définir une propriété pour l'encapsuleur de service qui donnera au VM plus de temps pour terminer le vidage de tas.

5

J'ai eu le même problème. L'ajout du drapeau "format = b" a corrigé le problème. Apparemment, Memory Analyzer ne peut lire que les fichiers binaires.

+0

AM ayant le même problème, où avez-vous ajouté "format = b"? – RanPaul

+0

Dans l'option jmap '-dump: format = b, fichier = out.hprof' – Dani