jstack(1)

名前
jstack - Javaプロセス、コア・ファイルまたはリモート・デバッグ・サーバーに対するJavaスレッドのスタック・トレースを出力します。このコマンドは試験的なもので、サポートされていません。

概要

    jstack [ options ] pid

    jstack [ options ] executable core

    jstack [ options ] [ server-id@ ] remote-hostname-or-IP

options
    コマンド行オプション。オプションを参照してください。

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

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

コア
    出力するスタック・トレースのコア・ファイルです。

remote-hostname-or-IP
    リモート・デバッグ・サーバーのホスト名またはIPアドレス。jsadebugd(1)を参照してください。

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

説明

jstackコマンドは、指定されたJavaプロセス、コア・ファイルまたはリモート・デバッグ・サーバーに対するJavaスレッドのJavaスタック・トレースを出力します。Javaフレームごとに、フルクラス名、メソッド名、バイトコード・インデックス(bci)、および行番号(利用可能な場合)が出力されます。-mオプションを使用すると、jstackコマンドは、すべてのスレッドの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%

オプション

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

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

-m
    JavaおよびネイティブC/C++フレームの両方を持つ混合モードのスタック・トレースを出力します。

-h
    ヘルプ・メッセージが出力されます。

-help
    ヘルプ・メッセージが出力されます。

既知のBUG

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

関連項目

    • pstack(1)

    • C++filt(1)

    • jps(1)

    • jsadebugd(1)