Jdb-introduction
JDB-はじめに
デバッグとは、プログラムのバグや欠陥を見つけて削除し、期待される結果を得るための技術的な手順です。 デバッグには、テストと監視が含まれます。 プログラムのサブユニットが密結合している場合、非常に複雑です。 規定のAPIに従うデバッガーツールを使用してプログラムをデバッグできます。 デバッガーを使用すると、コードのあらゆる側面をステップスルーし、すべての要素を検査し、エラーがあれば削除できます。
デバッグ手法
Javaプログラムをデバッグするには、さまざまな種類の手法があります。 デバッグの古い方法は、コンソールにトレースステートメントを出力するすべてのセグメントの最後にprintステートメントを使用することです。 次のコードを見てください。
pubic class Add
{
public static void main(String ar[])
{
int a = ar[0];
system.out.println("A : " + a);
int b = ar[1];
system.out.println("B : " + b);
int c = a + b;
system.out.println("C = a + b : " + c);
}
}
ここには、2つの数値を追加して出力を出力するプログラムがあります。 各ステップで、プログラムの状態をコンソールに出力するprintステートメントを導入していることに注意してください。 これは、プログラムをデバッグするための従来のアプローチです。
さらに、次のようなプログラムのデバッグに使用できる高度な概念があります。
- ステッピング
- ブレークポイント、および
- 例外またはウォッチポイント。
デバッグの種類
さまざまな方法を使用してプログラムをデバッグできます。
- Javaバイトコードの使用(コンパイル済みバージョンのJavaコード)
- プログラム内でコメントを使用する
- 実行中のプログラムへのクラスの付加
- リモートデバッグ
- オンデマンドでのデバッグ
- 最適化されたコードデバッグ
Javaデバッガー
市場で入手可能なJavaデバッガーの例を次に示します。
- Eclipse、NetbeansなどのIDE 独自のデバッガーを含む(Visual cafe、Borland、JBuilder)
- スタンドアロンデバッガーGUI(Jikes、Javaプラットフォームデバッガー、JProbeなど)
- コマンドラインデバッガー(SunのJDB)
- メモ帳またはVI駆動(スタックトレース)
このチュートリアルでは、コマンドラインデバッガー jdb の使用方法について説明します。
JDB
Javaデバッガー(JDB)は、コマンドラインでプログラムをデバッグするJavaクラスのツールです。 Java Platform Debugger Architectureを実装します。 Java Debug Interface(JDI)を使用して、Javaプログラムのバグを検出および修正するのに役立ちます。
JDKのJDB
次のアーキテクチャは、JDKでのJDBの役割を定義しています。 主に3つのユニットが含まれています。
- Java仮想マシンツールインターフェイス(JVM TI)
- Javaデバッグ配線プール(JDWP)
- Java Debugger Interface(JDI)
JVM TI
VMによって実装されるネイティブプログラミングインターフェイスです。 VMで実行されているアプリケーションの状態を検査およびデバッグする方法を提供します。 これにより、実装者(VM実装者)をデバッグアーキテクチャに簡単に組み込むことができます。 また、通信には JDWP と呼ばれるサードパーティのチャネルを使用します。
JDWP
デバッグ対象プロセスとデバッガーフロントエンド間で渡される情報と要求の形式を定義します。 JDWPを使用する主な目的は、デバッグ対象とデバッガーが別々のVMまたは別々のプラットフォームで実行されるときに通信できるようにすることです。
JDI
これは、フロントエンドとして実装される高レベルのJavaインターフェイスです。 ユーザーコードレベルで変数情報を定義します。 すべてのデバッガ開発にJDIレイヤーを使用することをお勧めします。 デバッグ対象JVMとの通信にJDWPを使用します。