C#でプログラムを作っていると、思った通りに動かないことはよくあります。そんなときに必要なのが「デバッグ」です。デバッグとは、バグ(不具合)を発見して修正する作業のこと。本記事では、C#開発でよく使われる統合開発環境「Visual Studio」を使った基本的なデバッグ方法から、少し進んだテクニックまでをわかりやすく解説します。初心者の方でも今日からすぐに使える内容になっていますので、ぜひ最後までご覧ください。
デバッグ(debug)とは、バグ(bug:プログラムの誤り)を見つけて直す作業のことを指します。開発の現場では、プログラムが思った通りに動かない原因を調べるために、このデバッグ作業が非常に重要です。
C#でプログラムを書く場合、Visual Studioというツールを使うことが一般的です。Visual Studioには強力なデバッグ機能が組み込まれており、ボタン一つでプログラムを止めたり、変数の中身を見たりすることができます。
まず、Visual Studioでプロジェクトを開いている状態にしておきましょう。デバッグは、以下の手順で始めることができます。
ブレークポイントは、デバッグで最も基本的で重要な機能です。
エディタの左側の灰色の帯をクリックするだけで、その行に赤い●が表示され、ブレークポイントが設定されます。
右クリック →「条件の編集」から、特定の条件を満たしたときだけ止めることができます。
例:「i == 5」のときだけ止めたい、など。
プログラムを止めた状態で、変数の中身を確認する方法を紹介します。
止まっている行の直前で使われていた変数が一覧で表示されます。
現在のスコープで使えるすべての変数が確認できます。
「ウォッチ」に変数名を入れることで、任意の変数をいつでも確認できます。式も使えるので、たとえば user.Age > 18
のような条件もチェックできます。
Visual Studioでは、プログラムを1行ずつ実行しながら処理を確認できます。
例外(エラー)が発生すると、Visual Studioが自動的にその場所で止まってくれることがあります。
「デバッグ」→「例外設定」で、どの種類の例外が発生したときに止めるかを指定できます。
コードの中に Console.WriteLine()
や Debug.WriteLine()
を仕込むことで、処理の流れをログに記録することもできます。
Console.WriteLine("ここまで実行された");
Debug.WriteLine("変数の値: " + value);
Visual Studioの「出力」ウィンドウで確認できます。
ブレークポイントでは確認しきれないときや、本番環境に近い動作で確認したいときに便利です。
obj != null
の確認を習慣にしましょう。ConfigureAwait(false)
を使うとデバッグしづらくなることも。ToList()
にしてから確認すると追いやすくなります。C#に限らず、プログラミングにおいて「デバッグ力」は非常に重要です。コードを書く力と同じくらい、バグを見つけて直す力が求められます。Visual Studioの豊富なデバッグ機能を使いこなせれば、開発のスピードも格段にアップするはずです。
最初はブレークポイントとステップ実行を試すだけでも構いません。少しずつ慣れていき、条件付きブレークポイントやウォッチ、例外の設定まで使えるようになると、あなたの開発スキルは大きくレベルアップするでしょう。