Visual Studio デバッグ入門

「カーソル行の前まで実行」と「カーソルまで強制的に実行」の違い

デバッグ中にこんなことはありませんか?

  • ここまで一気に進めたい
  • ループの中は今は見なくていい
  • ブレークポイントを増やしたくない

そんなときに使う機能が次の2つです。

  • カーソル行の前まで実行(Ctrl + F10)
  • カーソルまで強制的に実行

似ていますが、少しだけ役割が違います。


まずはサンプルコード

using System;

class Program
{
    static void Main()
    {
        int total = 0;

        Console.WriteLine("開始");

        for (int i = 0; i < 100; i++)
        {
            total += i;
        }

        Console.WriteLine("合計:" + total);
        Console.WriteLine("終了");
    }
}

① カーソル行の前まで実行(Ctrl + F10)

たとえば、

Console.WriteLine("合計:" + total);

この行にカーソルを置いて

Ctrl + F10 を押します。

(または、右クリックメニュー)

すると、

  • 途中で止まらず
  • ここまで一気に実行されます

ただし重要

✔ 途中にブレークポイントがあれば止まります

✔ 例外があれば止まります

つまりこれは、

普通のデバッグのルールを守りながら進める機能

です。


② カーソルまで強制的に実行

同じ行で右クリックすると出てきます。

これは、

✔ 途中のブレークポイントを無視します

✔ 一時的に全部スキップします

✔ 例外は止まります

つまり、

今は途中を見なくていいから無視して進む

という機能です。


よくある誤解

「50回目で止めたいからカーソルを置けばいい?」

これはできません。

for (int i = 0; i < 100; i++)
{
    total += i;
}

このコードは

同じ1行を100回繰り返しているだけです。

「50回目専用の行」は存在しません。


50回目で止めたいときは?

条件付きブレークポイントを使います

  1. total += i; にブレークポイントを置く
  2. 右クリック → 条件
  3. i == 49 と入力

これで50回目で止まります。


まとめ

やりたいこと使う機能
この場所まで進めたいカーソル行の前まで実行
途中の停止を無視したい強制的に実行
○回目で止めたい条件付きブレークポイント

大事なこと

デバッグは

「コードを書く技術」ではなく

「コードの流れを見る技術」です。

Run to Cursor を使いこなせるようになると、

プログラムの動きが見えるようになります。

これは、初心者を抜ける大きな一歩です。


訪問数 5 回, 今日の訪問数 5回

VisualStudio

Posted by hidepon