jhsdb
jhsdb
ツールは、Javaプロセス、またはクラッシュしたJava仮想マシン(JVM)からのコア・ダンプに接続する場合に使用します。
jhsdb
は、Serviceability Agent (SA)ツールです。Serviceability Agent (SA)はJDKコンポーネントの1つで、スナップショットのデバッグやパフォーマンス分析を実行したり、Hotspot JVMおよびHotspot JVMで実行されるJavaアプリケーションの詳細を把握する場合に使用します。
JVMの調査にはgdb
のようなネイティブ・デバッガが用意されていますが、このようなネイティブ・デバッガは、jhsdb
とは異なり、Hotspot内のデータ構造に関する知識を本来備えていないため、実行されるJavaアプリケーションについての洞察を提供することができません。jhsdb
は、JVMの重要なコンポーネント(Javaヒープ、ヒープの世代、リージョン、コード・キャッシュなど)の場所やアドレス範囲を把握しています。
形式
jhsdb clhsdb [--pid pid | --exe executable --core coredump]
jhsdb debugd [options] (pid | executable coredump) [server-id]
jhsdb hsdb [--pid pid | --exe executable --core coredump]
jhsdb jstack [--pid pid | --exe executable --core coredump] [options]
jhsdb jmap [--pid pid | --exe executable --core coredump] [options]
jhsdb jinfo [--pid pid | --exe executable --core coredump] [options]
jhsdb jsnap [options] [--pid pid | --exe executable --core coredump]
-
pid
-
jhsdb
ツールの接続先となるプロセスIDです。プロセスはJavaプロセスである必要があります。マシン上で実行されているJavaプロセスのリストを取得するには、ps
コマンドを使用するか、JVMプロセスが別のDockerインスタンスで実行されていない場合はjpsコマンドを使用します。注意:
JDK 10で、Attach APIを使用して、別のDockerプロセスで実行されているJavaプロセスに接続するためのサポートが追加されました。ただし、jps
コマンドでは、別のDockerインスタンスで実行されているJVMプロセスをリストしません。Dockerコンテナ内の仮想マシンとLinuxホストの接続を試みる場合は、ps
などのツールを使用して、JVMのPIDを参照する必要があります。 -
server-id
-
複数のデバッグ・サーバーが同一のリモート・ホストで実行している場合に使用するオプション固有のIDです。
-
executable
-
コア・ダンプの作成元となるJava実行可能ファイルです。
-
coredump
-
jhsdb
ツールの接続先となるコア・ファイルです。 -
options
-
jhsdb
モードでのコマンド行オプションです。「jhsdbモードの共通オプション」、「debugdモードのオプション」、「jinfoモードのオプション」、「jmapモードのオプション」、「jmapモードのオプション」、「jstackモードのオプション」および「jsnapモードのオプション」を参照してください。
注意:
pid
またはexecutable
ファイル/coredump
ファイルのペアを指定する必要があります。
説明
jhsdb
ツールは、Javaプロセスに接続するか、事後デバッガを起動して、クラッシュしたJava仮想マシン(JVM)からのコア・ダンプの内容を分析する場合に使用します。このコマンドは試験的なものであり、サポート対象外になっています。
注意:
jhsdb
ツールをライブ・プロセスに接続すると、プロセスはハングし、デバッガによる切離しの際にクラッシュする可能性があります。
jhsdb
ツールは、次のモードのいずれかで起動できます。
jhsdbモードの共通オプション
必須のjstack
、jmap
、jinfo
またはjsnap
モード固有のオプションに加えて、pid
、exe
またはcore
オプションは、すべてのモードに対して指定する必要があります。次のオプションは、すべてのモードで使用できます。
jinfoモードのオプション
オプションが指定されていないと、jhsdb jinfo
コマンドは、フラグとプロパティの両方を出力します。
jmapモードのオプション
次のモード固有のオプションに加えて、pid
、exe
またはcore
オプション(「jhsdbモードの共通オプション」を参照)を指定する必要があります。
jstackモードのオプション
次のモード固有のオプションに加えて、pid
、exe
またはcore
オプション(「jhsdbモードの共通オプション」を参照)を指定する必要があります。
jsnapモードのオプション
次のモード固有のオプションに加えて、pid
、exe
またはcore
オプション(「jhsdbモードの共通オプション」を参照)を指定する必要があります。