Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。

デバッグ

ここでは、Eclipseデバッグ機能について解説します。

実行環境
  • ・WindowsXP Home Edition
  • ・JDK 1.5.0_07
  • ・Eclipse 3.2.1
  • ・Eclipse Language Pack 3.2.1

デバッグの設定

デバッグに使用するサンプルプログラムをEclipseで作成します。作成方法が不明な場合はJavaの道:Eclipse(基本操作)を参照するなどして作成してください。サンプルプログラムはコマンドラインから引数を2つ取り、第1引数を第2引数で指定された回数乗算するものです。

ExEclipse1.java

public class ExEclipse1 {
    public static void main(String[] args) {
        int num1 = Integer.parseInt(args[0]);
        int cnt1 = Integer.parseInt(args[1]);
        for (int i = 0; i < cnt1; i++) {
            num1 = num1 * num1;
        }
        System.out.println(num1);
    }
}

行ブレークポイント

プログラムの実行を特定の箇所で停止したい場合、Javaエディタ画面の停止したいプログラムコードの左端フレームで「右クリック」→「ブレークポイントの切り替え」を押します。行ブレークポイントが追加され、プログラムが実行された場合この箇所で実行が止まります。ブレークポイントを削除したい場合は、ブレークポイント上で再び「右クリック」→「ブレークポイントの切り替え」を選択することで削除できます。行ブレークポイントの追加・削除作業は、該当箇所の左フレームをダブルクリックすることでも行えます。

今回の解説では、「int cnt1 = Integer.parseInt(args[1]); 」のプログラムコードに行ブレークポイントを指定します。

Eclipse_ブレークポイント

デバッグの実行

ここでは、デバッグの実行方法、デバッグ機能の使用方法について解説します。

  1. 「実行」→「構成およびデバッグ」を押して、「デバッグ」画面を表示します。
  2. 左ペインで「Javaアプリケーション」を選択し、左上の「新規」ボタンを押します。作成された新規デバッグクラスを選択し、「名前」に任意のデバッグ名を入力します。ここではクラス名と同様にExEclipse1と入力します。
    Eclipse_デバッグ1
  3. 「メイン」タブを押します。「プロジェクト」にEclipseのプロジェクト名、「メイン・クラス」にmainメソッドがあるクラス名を入力します。
    Eclipse_デバッグ2
  4. 「引数」タブを選択し、「プログラム引数」にプログラムを実行する際に指定するコマンドライン引数を指定します。ここでは、「2 3」(第1引数2、第2引数3)と指定します。
    Eclipse_デバッグ3
  5. 「デバッグ」ボタンを押すとデバッグ・パースペクティブが開き、デバッグが開始されます。プログラムが実行され、行ブレークポイントを指定した「int cnt1 = Integer.parseInt(args[1]); 」のプログラムコードで実行がブレークします。
    ※1~5でデバッグ構成を設定した後では、該当のプログラムを右クリックし、「デバッグ」→「Javaアプリケーション」を選択することで、デバッグを簡易に実行することができます。
  6. 右上の変数ビューで、ブレークした時点の変数の値が確認できます。引数arg[0]に値「2」が、引数arg[1]に値「3」が、変数num1に値「2」が代入されているのがわかります。値をクリックして変更して、実行することもできます。
    Eclipse_デバッグ4
  7. 左上のデバッグビューでは、現在実行しているスレッド、メソッドが表示されています。ここでは、デバッグの実行を制御します。
    Eclipse_デバッグ5
    「再開」
    次のブレークポイントが指定されている箇所まで、プログラムを実行します。
    「中断」
    プログラムの実行を中断します。
    「終了」
    プログラムを最後まで実行し、終了します。
    「ステップイン」
    プログラムコードでメソッドの呼び出しがある場合、呼び出し先のメソッドもデバッグ対象として実行します。
    「ステップオーバー」
    現在アクティブになっているプログラムコードの次のコードを実行します。呼び出し先のメソッドはデバッグ対象としません。
    「ステップ・リターン」
    現在実行しているメソッドが終了するまで、プログラムを実行します。ステップインで呼び出し先メソッドの詳細を調べ、調査が終了するとステップ・リターンで元の呼び出し元メソッドに戻るといった使い方をします。
  8. 行ブレークポイントを指定している箇所で各変数の値等を調査した後、「終了」ボタンを押してデバッグを終了します。再び、コーディング画面に戻る場合は「ウィンドウ」→「パースペクティブを開く」→「Java」を選択し、Javaパースペクティブを開きます。

6デバッグ