jstack [ option ] pid jstack [ option ] executable core jstack [ option ] [server-id@]remote-hostname-or-IP
各オプションは互いに排他的です。オプションを使用する場合、コマンド名の直後に記述します。オプションを参照してください。
jstack は、指定された Java プロセスやコアファイルまたはリモートデバッグサーバーに対する Java スレッドの Java スタックトレースを出力します。Java フレームごとに、フルクラス名、メソッド名、「bci」(バイトコードインデックス)、および行番号 (利用可能な場合) が出力されます。-m オプションを使用すると、jstack は、すべてのスレッドの Java フレームとネイティブフレームの両方を、「pc」(プログラムカウンタ) とともに出力します。ネイティブフレームごとに、「pc」にもっとも近いネイティブシンボル (利用可能な場合) が出力されます。C++ 分解名は分解解除されません。C++ 名を分解解除するには、このコマンドの出力を c++filt にパイプします。指定されたプロセスが 64 ビット VM 上で実行されている場合、-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%
です
混合モードのスタックトレース (-m オプション使用) は、リモートデバッグサーバーでは機能しません。