42

プロセスがクラッシュしてコア ダンプが残る場合、またはコア ダンプを作成したgcore場合、どうすれば分析できますか?

jmap、などを使用してjstackjstatすべての変数の値を確認できるようにしたいと考えています。

このようにして、JVM がクラッシュまたはフリーズした理由を見つけることができます。

4

10 に答える 10

44

gcore または gdb でコア ダンプを作成した場合は、それをHPROFファイルと呼ばれるものに変換する必要があります。これらは、VisualVM、Netbeans、または Eclipse のメモリ アナライザー ツール (以前の SAP メモリ アナライザー) で使用できます。Eclipse MAT をお勧めします。

ファイルを変換するには、コマンドライン ツールjmapを使用します。

# jmap -dump:format=b,file=dump.hprof /usr/bin/java core.1234

どこ:

dump.hprofは、作成する hprof ファイルの名前です。

/usr/bin/java は、コア ダンプを生成した Java バイナリのバージョンへのパスです。

core.1234 は通常のコア ファイルです。

于 2009-07-28T08:38:02.850 に答える
12

IBM JVMを使用している場合は、IBM Thread and Monitor Dump Analyzer をダウンロードします。優れたツールです。スレッドの詳細を提供し、デッドロックなどを指摘できます。次のブログ投稿では、使用方法の概要を説明しています。

于 2014-03-11T01:04:59.257 に答える
5

VisualVM が役立つかもしれません (自分で試す機会はまだありません)。リンク:

http://java.sun.com/javase/6/docs/technotes/guides/visualvm/coredumps.html

于 2009-06-04T15:03:21.943 に答える
5

ここで必要なのはコア ダンプでよろしいですか? これには、Java レベルの情報ではなく、実行中の JVM の生の中身が含まれます。おそらく、JVM ヒープ ダンプの方が必要です。

于 2009-06-04T15:22:28.567 に答える
2

http://www.oracle.com/technetwork/java/javase/tsg-vm-149989.pdfを参照してください。コア ファイルで直接「jdb」を使用できます。

于 2011-05-13T19:56:28.863 に答える
2

実際、VisualVM はアプリケーションのコア ダンプを処理できます。

「File/Add VM Coredump」を呼び出すだけで、アプリケーション エクスプローラーに新しいアプリケーションが追加されます。その後、その JVM のスレッド ダンプまたはヒープ ダンプを取得できます。

于 2009-10-22T07:03:40.430 に答える
1

lady4jスタックアナライザーを試してみてください。

http://www.lady4j.com/solveStack.jsp

于 2010-05-20T21:07:43.587 に答える
0

jhat は、私がこれまでに使用した中で最高のものの 1 つです。コア ダンプを取得するには、gcore の代わりに jmap と jps を使用することをお勧めします (私は使用していません)。リンクをチェックして、jhat の使用方法を確認してください。 http://www.lshift.net/blog/2006/03/08/java-memory-profiling-with-jmap-and-jhat

于 2010-07-27T07:00:57.443 に答える
0

Netbeans Profilerを試すことをお勧めします。これには、リアルタイム分析用の豊富なツール セットがあります。IbM のツールは、オフライン分析に試す価値があります

于 2009-06-04T15:12:09.507 に答える
0

IBM は、sun jvm でも使用できる多くのツールを提供しています。alphaworks のいくつかのプロジェクトを見てみましょう。それらはヒープおよびスレッド ダンプ アナライザーを提供します。

カール

于 2009-06-04T15:02:24.643 に答える