jstack - スタックトレース

形式

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

パラメータ

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

pid
出力するスタックトレースのプロセス ID です。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するために、jps を使用できます。
executable
コアダンプの作成元の Java 実行可能ファイルです。

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

remote-hostname-or-IP
リモートデバッグサーバー (jsadebugd を参照) のホスト名または 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 の所有できるシンクロナイザの一覧など、ロックについての追加情報を出力します。
-m
混合モード (Java およびネイティブ C/C++ フレームの両方) のスタックトレースを出力します。
-h
ヘルプメッセージを出力します。

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

関連項目

既知のバグ

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


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.