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://docs.oracle.com/javase/7/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オプション使用)は、リモート・デバッグ・サーバーでは機能しません。