【C#入門】第9回 デバッグについて【じゃんけんゲームを作ろう その9】
前回の関数まででとりあえずじゃんけんゲームは完成です。

そこでより一層理解を深めるために、今回はデバッグの話をしようと思います。
デバッグ
デバッグとは
デバッグとは、プログラムの中にあるバグを探し出し、そのバグを取り除くことである。
つまり、実際に実行してみてプログラムの中の不具合を探し出し、直す作業のことを指します。
デバッグをすると大きなアプリや複雑なアプリは多くのバグを排出します。
しかし、バグがあることがダメではありません。
むしろバグは必ず存在するものだという認識で行うものです。
以前、客先常駐で出向していたとある会社は、プログラムのテストをするときにバグが見つからなかったらテスト不足を指摘され、テストをやり直させられたりしました。
プログラミングはバグを出さないのも大切ですが、早期発見、早期対策の方がもっと重要です。
デバッグする方法
デバッグするには、ショートカットキー「F5」を押すか、以下の「開始」ボタンをクリックします。

実行すると画面が表示されたと思います。

それではグーボタンをクリックしてみましょう。

やった!勝ちました!
ブレイクポイント
ブレイクポイントとは、デバッグ実行をブレイク(止める)ことができるポイント(場所)のことです。
プログラム中にブレイクポイントを設置すると、実行を途中で止めることができます。
実行を途中で止めることができるので、止めたところの値を確認したり、変更したりできます。
ブレイクしたい場所にカーソルを持っていき、ショートカット「F9」か端のこの部分をくりっくしてください

赤い丸が出たと思います。もう一度「F9」か赤丸をクリックするとブレイクポイントは消えます。
実行してみましょう。そうするとブレイクポイントのところで止まると思います。
[ブレイクポイントで止まっているところの絵]

一行一行進むことができる
ショートカットキー「F10」と「F11」で次の行に行くことができます。
- 「F10」で進むと関数内部では止まりません。(※ブレイクポイントがあればその時点にとまります。)
- 「F11」で進むと関数内部にまで順次入っていきます。
なので、関数の中身までは見なくてもいいという場合は「F10」で進めていき、関数の中まで入って確認したい場合は「F11」で進んでいくのがいいでしょう。
変数の中身を見れる
ブレイクポイントのところで止まっているので、止まっている現在の変数の中身をみることができます。
ウォッチウィンド
現在、スコープされている変数の一覧とその中身が表示されています。
画面下にあります。

イミディエイトウィンドウ
行頭に「?」をつけて知りたい内容を記入してEnterを押せば内容を表示してくれます。

変数の中身の変更
イミディエイトウィンドウを使用するれば変数の値を変更することができます。
わざとエラーを出してみましょう。
cpu_hand に -1 を代入してみましょう。

ブレイク状態から抜けるには「F5」または「続行」を押します。
Imageの取得でエラーが起きてしまいました。

「インデックスに -1 はないですよ」って言ってます。
まとめ
プログラミングをする上でデバッグすることはとても大きな意味を持ちます。
それは、なるべくバグを減らし、利用者により良いものを届けるために必要な行為だからです。
重要なのでもう一度いいます。バグを無くすことよりも早期発見、早期対策がとても大事です。
次回からは作ったじゃんけんゲームをもっと発展させていきたいと思います。
