Точки останова с условием в Visual Studio. Основы

Visual Studio позволяет устанавливать условия при выполнении которых выполнение программы будет приостановлено и вы перейдёте в отладчик в данной точке останова.

В качестве примера рассмотрим простейшую программу, которая выводит числа от 0 до 10.

static void Main(string[] args)
{
     int count = 10;
    for (int i = 0; i <= count; i++)
    {
        Console.WriteLine(i);
    }
    Console.ReadKey();
}

Точку останова мы поставим внутри цикла на операторе, который выводит на экран консоли значение переменной i.

Если мы просто поставим точку останова, то выполнение программы будет приостанавливаться на каждой итерации цикла.

Но, в этом не всегда есть необходимость. Также при большом количестве итераций это как правило увеличивает время отладки потому, что:

  1. Нужная итерация может выполняться не вначале алгоритма и до неё цикл должен выполниться определённое количество раз;
  2. Даже после выполнения нужной итерации точка останова без условия будет приводить к приостановке программы при каждом выполнении цикла до тех пор, пока программа из него не выйдет.

Помимо вышесказанного обычная точка останова может создать немало трудностей и при отладке алгоритмов, не содержащих циклы или ошибок с ними не связанных (во всяком случае напрямую). Например, если ошибка в методе класса воспроизводится только при определённых исходных данных нет смысла переходить в отладчик при каждом его вызове.

Но, как сделать чтобы точка останова срабатывала только при определённых условиях?

Для этого в интерфейсе Visual Studio нужно навести курсор мыши на точку останова. В появившейся рядом панели нажать кнопку со значком в виде шестерни. В открывшемся окне установить флажок «Условие». После этого в правом текстовом поле можно указать условия срабатывания точки останова.

Условия для точек останова записываются в виде логического выражения на языке программирования проекта. То есть, если ваш проект на C# (как в нашем примере) условие следует записать на C#. Если на VB.NET, то на VB.NET и т.д.

После нажатия кнопки «Закрыть» параметры точки останова (включая условие) будут сохранены. Для наглядности значок точки останова, для которой заданы специальные параметры, изменит свой вид.

В данном примере точка останова будет срабатывать при значении переменной I равном 5.

Важно отметить, что в данной статье мы разобрали лишь простейший пример.

Условия для точек останова могут быть гораздо сложнее. Также возможности отладчика Visual Studio не ограничиваются только проверкой логических выражений.

Характер условия точки останова задаётся в среднем поле (см. скриншот) в выпадающем меню. Также это меню определяет какие условия могут быть доступны дополнительно. Но, это уже тема для отдельной статьи.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *