jstack(1)

名前
jstack - スタックトレース

    o   形式

    o   パラメータ

    o   説明

    o   オプション

    o   関連項目

    o   既知のバグ

形式

jstack [ option ] pid
jstack [ option ] executable core
jstack [ option ] [server-id@]remote-hostname-or-IP

パラメータ

各オプションは互いに排他的です。オプションを使用する場合、コマンド名の直後に記述します。オプションを参照してください。

    pid 印刷するスタックトレースのプロセス ID です。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するには、jps(1) を使用します。

    executable
        コアダンプの作成元の Java 実行可能ファイルです。

    core
        印刷するスタックトレースのコアファイルです。

    remote-hostname-or-IP
        リモートデバッグサーバー (jsadebugd(1) を参照) のホスト名または IP アドレスです。

    server-id
        複数のデバッグサーバーが同一のリモートホストで実行している場合の、オプション固有の ID です。

説明

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%

オプション

    -F  「jstack [-l] pid」が応答しない場合にスタックダンプを強制します。

    -l  長形式のリスト。所有 java.util.concurrent の 所有できるシンクロナイザ @
        http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.htmlの一覧など、ロックについての追加情報を印刷します。

    -m  混合モード (Java およびネイティブ C/C++ フレームの両方) のスタックトレースを印刷します。

    -h  ヘルプメッセージを印刷します。

    -help
        ヘルプメッセージを出力します。

関連項目

    o   pstack(1)

    o   c++filt(1)

    o   jps(1)

    o   jsadebugd(1)

既知のバグ

混合モードのスタックトレース (-m オプション使用) は、リモートデバッグサーバーでは機能しません。