デバッグの基本 |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
うーん・・・
プログラムにバグが
あったんだよね・・・。
どこが間違ってたん
だろう・・・。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ、
このゲームのバグを
探して直すために
デバッグの仕方を
勉強していこう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
 |
ケッ
俺はどうせ
クズですよ。
魚のクズ肉
ですよ。
えーえー |
|
|
|
 |
|
 |
|
プログラム作成の流れ |
|
|
|
|
 |
|
開発 |
仕様でプログラムを作る
コードを書く |
 |
テスト・デバッグ |
|
|
|
|
 |
|
|
|
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
デバッグ練習用のコードを
作ってみたよ。
このコードを使ってデバッグの
解説をして行くからね。
新しくプロジェクトを作って
コードを写してくれ。
エラーが出るけど
気にしないで写してね。
ちなみに今回は
内容を理解「しない」でいいよ。
馬鹿になって丸写しして。
|
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
プロジェクト名は
「KotoDebug」で
主クラス名は
「kotodebug.KDMain」で
いいや。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
えー、
理解しないでいいんだ・・・
変なのー。
でも、どうやってバグを
探すんだろう。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
デバッグテスト用コード
(KotoDebugのKDMain.java)17行目~ |
|
・・・ |
|
|
|
017 |
|
public static void
main(String[] args) { |
|
018 |
|
//
TODO code application logic here |
|
019 |
|
|
|
020 |
|
//******************* |
|
021 |
|
//実行時エラーテスト |
|
022 |
|
System.out.println(""); |
|
023 |
|
System.out.println("********** 実行時エラーテスト結果 **********"); |
|
024 |
|
System.out.println(""); |
|
025 |
|
|
|
026 |
|
a
= 3;//変数a を
3で宣言して初期化 |
|
027 |
|
System.out.println("100を"
+ a +
"で割ると" +
(100/a) + "です。"); |
|
028 |
|
|
|
029 |
|
a -= 1; |
|
030 |
|
System.out.println("100を"
+ a + "で割ると"
+ (100/a) +
"です。"); |
|
031 |
|
|
|
032 |
|
a -= 1; |
|
033 |
|
System.out.println("100を"
+ a +
"で割ると" + (100/a) +
"です。");
|
|
034 |
|
|
|
035 |
|
a -= 1; |
|
036 |
|
System.out.println("100を"
+ a +
"で割ると" + (100/a) +
"です。"); |
|
037 |
|
|
|
038 |
|
//******************* |
|
039 |
|
//論理エラーテスト |
|
040 |
|
System.out.println(""); |
|
041 |
|
System.out.println("********** 論理エラーテスト結果 **********"); |
|
042 |
|
System.out.println(""); |
|
043 |
|
|
|
044 |
|
int
b = 100; |
|
045 |
|
System.out.println("100を"
+ b + "で割ると"
+ (100/a) + "です。"); |
|
046 |
|
|
|
047 |
|
} |
|
・・・ |
|
|
|
|
黄色の部分を書き写して下さい。 |
|
|
 |
|
 |
|
|
 |
|
 |
|
デバッグテスト用コード コピペ用(KotoDebugのKDMain.java)20行目~ |
|
|
コードの記述に利用して下さい。(黄色の部分です)
スクロールしますので、必ず全てのコードをコピペして下さい。
コード上で右クリックして「全てを選択」「コピー」が便利です。 |
|
|
|
 |
|
 |
|
|
|
|
|
 |
よーし、
バグを
見つけて
やるぞ!
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
デバッグとは
プログラムのバグを
直す事を言う。
IDEの便利な機能を使って、
このプログラムの間違いを
探して直していくんだよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
いたずら虫を
追い出すんだ。
IDEが直すの
手伝ってくれるんだね!
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
 |
やった!
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ねー、なぽちゃん、
前から気になって
たんだけど・・・
バグとエラーって
どう違うの? |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
はいっ
質問! |
|
なんとか
かんとか。
バグは
エラーの塊
みたいな感じ? |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
うーん。
定義としてはいろいろあるみたい
だけど・・・。
・エラーは、
「誤り」そのもののこと
・バグは、
エラーによって引き起こされる
問題のこと
みたいな感じ? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
バグもエラーも
「誤り」の意味で
いいんじゃね。
俺のセッションでは
両方同じようなもんって
考えちゃうねー。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
学者
じゃねーし。
だめ? |
|
あばうとー。 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ、
基本的なことを
順番に見ていこう。
まずは
エラーの種類からだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
 |
|
 |
|
デバッグの基本
・エラーの種類 |
・エラーの原因 |
・エラーの調査 |
・IDEの基本のデバッグ機能の使い方 |
・バグの探し方 |
|
|
|
 |
|
 |
|
|