本章では、プログラミングを行う上で重要となるデバッグの仕方について学習します。
デバッグの仕方について説明します。
デバッグは、プログラミングの処理を確認しながら逐次進めることができます。
これにより、自分が意図した処理が行われているかを確認することができるので、ソースを改修する際には必須のスキルと言えます。
下記のソースでの実行例を確認しましょう。
package debug;
public class SampleDebug {
public static void main(String[] args) {
String sentence = "for文実行完了";
for(int i = 0; i < 5; i++) {
int answers = i * i;
System.out.println(answers);
}
System.out.println(sentence);
}
}
デバッグ実施の説明に移る前に、まずは「実行」方法の確認をしていきます。
実行したいソースを開いてください。
ソース上で右クリックを押下して、「実行」→「Javaアプリケーション」を選択してください。
コンソールに実行結果が出力されたことを確認できましたね。
それでは、デバッグ実行をしていきましょう。
まずは、デバッグ実施するためにEclipseの設定を行います。
こちらの設定は、デバッグ実施時の初回のみ設定すれば問題ありません。
Eclipse上部にあるメニューの「ウィンドウ」→「設定」を選択します。
「設定」画面が開きますので、左側メニューの「実行/デバッグ」を開き、「パースペクティブ」を選択してください。
すると、右側がパースペクティブの設定画面となりますので、
「起動時に関連したパースペクティブを開く」の「常時」を選択してください。
次に、「起動」を選択して、「ワークスペースにブレークポイントが含まれている場合、デバッグ・モードで起動」の「なし」を選択して、「適用して閉じる」を選択してください。
以上でEclipseの設定は終わりです。
続いてソースの設定です。
10行目と13行目にブレークポイントを設定してください。
ブレークポイントを設定するには、行番号の左側をダブルクリックしてください。
ダブルクリックした箇所に青い丸マークがつけば、ブレークポイントを設定したことになります。
ブレークポイントを設定したら、ソース上で右クリックを押下して、「デバッグ」→「Javaアプリケーション」を選択してください。
デバッグが実行されると、処理の実行順序が一番早いブレークポイントで処理が停止します。
処理が停止した箇所の背景色が緑色になり、その行の手前までの処理が実行されます。
そのため、以下の画像では、10行目で処理が止まっているため、10行目のコンソールに出力する処理が実行されていないことが確認できます。
デバッグにおいて、処理を1行ずつ進めることをステップオーバーと言います。
ステップオーバーは、「F6」キーを押下するか、以下の画像の赤枠で指定した上部バーにあるアイコンをクリックすることで実行できます。
今回は、ステップオーバーを実行したら繰り返し処理(for文)中であるため、8行目に戻ります。
ステップオーバーで処理を進めてください。
処理が進む中で変数の値が変わったものは黄色く表示されます。
さらにステップオーバーを実行してください。
今度は、answersの値が表示されることが確認できます。
さらにステップオーバーを実行してください。
次のブレークポイントが設定されているところまで処理を進めることを再開と言います。
再開は、「F8」キーを押下するか、以下の画像の赤枠で指定した上部バーにあるアイコンをクリックすることで実行できます。
さらに再開を実行してください。
繰り返し処理のため、今度は10行目から次の処理の10行目まで処理が進みます。
これにより、以下の画像のように、変数iと変数answersの値が変更され、黄色くなっていることが確認できます。
さらに再開を実行してください。
続いて、ステップオーバーを実行してください。
もう一度、ステップオーバーを実行してください。
for文の条件が"i < 5"であるため、for文の中に入らずに13行目まで処理が進みます。
最後に、再開を実行します。
これで、コンソールに変数sentenceの値が出力されました。
また、処理が最後まで終了しましたので、変数タブの中身が空になり、終了アイコンも非活性になりました。
以上でデバッグの説明は終わります。
プログラムを書く上で、デバッグは非常に重要なものになります。
処理が分からなくなったときは、積極的にデバッグを使いましょう。
どんな処理をさせるために、そのコードを書いたのかを考えながらデバッグすることが大切です。
Javaのデバッグ方法についての説明は、以上です。