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++フレームの両方が含まれる混合モードのスタック・トレースを出力します。
ヘルプ・メッセージを出力します。
ヘルプ・メッセージを出力します。