5

メモリの問題が発生した Java プロセスから取得したヒープ ダンプを分析しようとしています。ダンプは jmap を使用して取得されました。ダンプファイルで jhat を使用しています-取得しています

java.io.IOException: Unrecognized magic number: 169897589 at com.sun.tools.hat.internal.parser.Reader.readFile(Reader.java:94) at com.sun.tools.hat.Main.main(Main.java:159)

jdk 1.6 と 1.7 の両方で同じエラーが発生します。Windows マシンで jhat をローカルで実行しており (ダンプ ファイルを にコピーした後)、ダンプ ファイルは Linux サーバーで取得されました。

私が間違っていることは何ですか?

4

2 に答える 2

4

com.sun.tools.hat.internal.parser.Readerのソースコードを見ると、マジックナンバー0x4a415641を探していることがわかります。

この値は、有効なヒープダンプファイルを識別するために使用されます。jmap作成するヒープダンプファイルの最初の4バイトとしてこの値を追加する必要があります。

ヒープダンプを16進エディタで開き、最初の4バイトがであるかどうかを確認することをお勧めします0x4a415641。LinuxマシンとWindowsマシンの両方でファイルを確認してください。ファイルを転送すると、ファイルが破損している可能性があります。

于 2013-03-19T18:44:18.933 に答える
1

おそらく、U は jvm ダンプ ファイルを生成する方法を間違っています。jmap -histo {pid} > dump.log を使用するとエラーが発生します。

試す

   jmap -dump:live;file=ファイル名 pid

幸運を。

于 2016-03-20T15:04:27.750 に答える