Javaプロセス、コア・ファイル、またはリモート・デバッグ・サーバーに対するJavaスレッドのスタック・トレースを出力します。 このコマンドは試験的なものであり、サポート対象外になっています。
jstack [ options ] pid
jstack [ options ] executable core
jstack [ options ] [ server-id@ ] remote-hostname-or-IP
コマンド行オプション。 「オプション」を参照してください。
出力されるスタック・トレースのプロセスIDです。 プロセスはJavaプロセスである必要があります。 マシン上で実行されているJavaプロセスのリストを取得するには、jps
(1)コマンドを使用します。
コア・ダンプの作成元になるJava実行可能ファイルです。
出力されるスタック・トレースのコア・ファイルです。
リモート・デバッグ・サーバーのhostname
またはIP
アドレスです。 jsadebugd
(1)を参照してください。
複数のデバッグ・サーバーが同一のリモート・ホストで実行している場合に使用するオプション固有のIDです。
jstack
コマンドは、指定されたJavaプロセス、コア・ファイル、またはリモート・デバッグ・サーバーに対するJavaスレッドのJavaスタック・トレースを出力します。 Javaフレームごとに、完全なクラス名、メソッド名、バイト・コード・インデックス(BCI)および行番号(使用可能な場合)が出力されます。 jstack
コマンドに-m
オプションを付けると、すべてのスレッドのJavaフレームとネイティブ・フレームの両方がプログラム・カウンタ(PC)とともに出力されます。 ネイティブ・フレームごとに、PCにもっとも近いネイティブ・シンボル(利用可能な場合)が出力されます。 C++分解名は分解解除されません。 C++名を分解解除するために、このコマンドの出力をc++filt
にパイプで渡すことができます。 指定したプロセスが64ビット版のJava仮想マシンで実行されている場合は、-J-d64
オプション(たとえば: jstack -J-d64 -m pid
)を指定する必要があることがあります。
ノート: このユーティリティはサポート対象外であり、将来のJDKリリースでは利用できなくなる可能性があります。 dbgeng.dllファイルが存在しないWindowsシステムでは、これらのツールが正常に動作するために、Debugging Tools For Windowsをインストールする必要があります。 PATH
環境変数に、ターゲット・プロセスで使用されるjvm.dllの場所またはクラッシュ・ダンプ・ファイルが生成された場所を含める必要があります。 たとえば:
set PATH=<jdk>\jre\bin\client;%PATH%
jstack
[-l
] pid
が応答しない場合にスタック・ダンプを強制します。
長形式のリストです。 所有されるjava.util.concurrent
の所有可能なシンクロナイザのリストなど、ロックについての追加情報を出力します。 AbstractOwnableSynchronizer
クラスの説明を参照してください。
http://docs.oracle.com/javase/jp/8/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.html
JavaフレームとネイティブC/C++フレームの両方が含まれる混合モードのスタック・トレースを出力します。
ヘルプ・メッセージを出力します。
ヘルプ・メッセージを出力します。