Visual Studioでのデバッグ時によく使用する便利な操作をまとめました。
デバッグは開発に欠かせないものなので、確実にマスターしておきましょう。
環境
- Windows 10
- Visual Studio 2022
前提
以下のシンプルなサンプルコード(コンソールアプリ)を使用して解説します。
class Example
{
static void Main()
{
var num = 0;
for (int i = 0; i < 10; i++)
{
num += i;
ShowNumber(num);
}
Console.ReadKey();
}
static void ShowNumber(int num)
{
Console.WriteLine(num);
}
}
デバッグの基本操作
デバッグの基本操作を紹介します。ショートカットキーを覚えておくと開発効率が上がります。
デバッグの開始(F5)
F5キーを押すか、下記の▶ボタンをクリックするとデバッガーが起動します。

デバッグの停止(Shift + F5)
Shift + F5キーを押すか、下記の■ボタンをクリックするとデバッガーが停止します。

コンソールアプリの場合はコンソールウィンドウを閉じることでも停止できます。
デバッグの再起動(Ctrl + Shift + F5)
Ctrl + Shift + F5キーを押すか、下記の矢印ボタンをクリックするとデバッガーを再起動できます。

ブレークポイントの設定と解除(F9)
行の左余白をクリックするか、行にカーソルがある状態でF9キーを押すとブレークポイントが設定できます。この状態でデバッグを実行すると、ブレークポイントがある行でアプリが一時停止します。

一時停止している状態でF5キーを押すと、次のブレークポイントに到達するまでアプリが実行されます。(ブレークポイントがない場合は最後まで実行)
ブレークポイントを解除するには赤い丸をクリックするか、再度対象の行でF9キーを押します。
ステップイン(F11)
ブレークポイントで一時停止した状態から、1行ずつコードを実行したい場合はF11キーを押すか、下記の矢印ボタンをクリックします。関数を呼び出している行でステップインをすると関数の中に入ることができます。

(例)ShowNumber関数を呼び出している行でステップインすると、ShowNumber関数内に入ることができる

ステップオーバー(F10)
1行ずつコードを実行したいが関数の中に入りたくない場合は、F10キーまたは下記の矢印ボタンをクリックします。

(例)ShowNumber関数を呼び出している行でステップオーバーすると、関数内の処理をスキップして次の行までコードを実行できる

ステップアウト(Shift + F11)
関数内でコードを一時停止している場合に、Shift + F11キーまたは下記の矢印ボタンをクリックすると、関数の外(呼び出し元)までコードを実行することができます。

(例)ShowNumber関数内でステップアウトすると、以降の処理をスキップして呼び出し元までコードを実行できる

クリックで実行
コード行の先頭にカーソルを合わせると表示される▶|
ボタンをクリックすると、その箇所までコードを実行させることができます。ブレークポイントを設定しなくても素早くコードを実行できるので便利です。

データヒント
デバッグ実行中に変数にカーソルを当てると、変数の現在の中身が表示されます。

右側のピンのマークをクリックすると、変数の中身を常に表示させることができます。
(値が変更されると赤字で表示されます)

デバッグの応用操作
その他、知っておくと役立つ便利な応用操作を紹介します。
ウォッチ
データヒントと似ていますが、値を確認したい変数を右クリックして「ウォッチの追加」を選択すると、変数の中身を確認することができます。

ウォッチウィンドウを確認すると、現在の値や型が確認できます。複数の変数をウォッチに追加することが可能です。

以下のように変数の値を書き換えることもできます。

条件付きブレークポイント
ブレークポイントには条件を指定することができます。
ループ中の特定のタイミングだけデバッグ実行を一時停止したいという場面などで重宝します。
赤い丸を右クリックし「条件」を選択すると、ブレークポイント設定画面が表示されます。

条件式に一時停止させたい条件を指定します。
画像では、iが8の場合にデバッグ実行を一時停止するという条件を指定しています。

複数条件の追加や、フィルターを使ったより複雑な条件指定も可能です。
ブレークポイントの全削除(Ctrl + Shift + F9)
ブレークポイントを一度に全て削除したい場合はCtrl + Shift + F9か、メニューバーから「デバッグ」→「すべてのブレークポイントの削除」を選択します。
大きなアプリケーションのデバッグ時など、1つ1つ削除するのが面倒な際に便利です。

ホットリロード
他の機能とは若干毛色が違いますが、とても便利なのでここで紹介します。
ホットリロードはVisual Studio 2022で搭載された新機能で、デバッグ実行中にコードを修正すると、デバッガーを再起動しなくても修正が即時に反映されます。
コード修正後にAlt + F10を押すとコードの反映が行われますが、「ファイルの保存時のホットリロード」にチェックを入れておくと、Ctrl + Sで上書き保存するだけで修正が反映されるようになります。

参考ドキュメント
