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

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

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

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

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

Простая точка останова

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

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

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

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

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

Как это выглядит показано ниже на скриншоте.

Параметры точки останова

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

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

Значок точки останова с параметрами

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

Как это выглядит в отладчике:

Точка останова с условием в отладчике

 

Как это выглядит в программе:

Приостановка работы программы на точке останова по условию

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

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

На скриншоте ниже показан пример точки останова, которая срабатывает при изменении значения переменной (в данном случае i).

Точка останова с условием при изменении

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

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

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