Java Platform, Standard Editionツール・リファレンス
目次      

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)コマンドを使用します。

executable

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

core

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

remote-hostname-or-IP

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

server-id

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

説明

jstackコマンドは、指定されたJavaプロセス、コア・ファイル、またはリモート・デバッグ・サーバーに対するJavaスレッドのJavaスタック・トレースを出力します。Javaフレームごとに、完全なクラス名、メソッド名、バイト・コード・インデックス(BCI)および行番号(使用可能な場合)が出力されます。jstackコマンドに-mオプションを付けると、すべてのスレッドの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の所有可能なシンクロナイザのリストなど、ロックについての追加情報を出力します。AbstractOwnableSynchronizerクラスの説明を参照してください。
http://docs.oracle.com/javase/jp/8/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.html

-m

JavaフレームとネイティブC/C++フレームの両方が含まれる混合モードのスタック・トレースを出力します。

-h

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

-help

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

既知の不具合

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

関連項目

目次      

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