Основные сведения об отладчике .NET в Visual Studio

Завершено

Из предыдущего урока вы узнали, что отладчик помогает управлять выполнением программы и наблюдать за ее состоянием. В этом разделе описано, как выполнять обе эти задачи в Visual Studio.

Для начала давайте узнаем, как использовать отладчик Visual Studio в .NET.

Начало работы с отладчиком Visual Studio

Запустите приложение с отладчиком, подключенным с помощью кнопки "Пуск " в верхней части Visual Studio, которая теперь включает имя проекта. После запуска приложения становятся доступны дополнительные средства отладки и функции.

Снимок экрана: элементы управления отладкой Visual Studio.

  1. Конфигурация решения указывает, следует ли запускать приложение в режиме отладки или выпуска.
  2. Конфигурация платформы указывает целевую платформу ЦП.
  3. Запускает приложение с подключенным отладчиком.
  4. Запускает приложение без подключенного отладчика.

Управление выполнением

После запуска приложения элементы управления отладкой отображаются рядом с кнопкой "Пуск ", нажатой для запуска приложения.

Снимок экрана: элементы управления работой средства отладки Visual Studio.

Элементы управления пронумерованы следующим образом:

  • 1) Продолжить или приостановить выполнение. Если выполнение приостановлено в точке останова, нажмите эту кнопку, чтобы продолжить, пока не будет достигнута следующая точка останова. Если программа запущена, кнопка изменяется на кнопку "Пауза", которую можно использовать для приостановки выполнения.
  • 2) Элементы управления горячей перезагрузкой. Эта новая функция Visual Studio 2022 позволяет вносить изменения и обновлять код без перезапуска приложения.
  • 3) Остановить. Эта кнопка останавливает запущенное приложение, которое также отсоединяет отладчик.
  • 4) Перезапустить. Останавливает и перезапускает приложение с подключенным отладчиком.
  • 5) Шаг с заходом. Если следующий оператор является вызовом функции, то выполняется переход к первому оператору кода этой функции (то же, что и команда step).
  • 6) Шаг. Если следующий оператор является вызовом функции, выполняется код с непосредственным переходом к следующей строке кода в текущей функции.
  • 7) Выход. Если вы находитесь внутри функции, выполните оставшийся код этой функции и перейдите к инструкции после начального out вызова функции (так же, как и команда).

Точки останова являются одной из основных функций отладки и интегрируются с этими элементами управления, поэтому рассмотрим их более подробно.

Точки останова

Как вы узнали из предыдущего урока, отладчик помогает анализировать и контролировать выполнение программы. При запуске приложения с подключенным отладчиком Visual Studio код сразу же начинает выполняться. Так как код выполняется быстро, требуется возможность приостановить выполнение программы на любом операторе. Для этого используйте точки останова .

Вы можете добавить точку останова в Visual Studio, щелкнув в левой части номера строки в строке, которую вы хотите разбить. После включения точки останова отобразится красная точка. Чтобы удалить точку останова, просто щелкните красную точку еще раз.

Снимок экрана: добавленная точка останова в окне редактора Visual Studio.

Если вы добавляете точку останова щелчком правой кнопки мыши или в существующей точке останова, можно также выбрать в контекстном меню команду Добавить условную точку останова. Этот специальный тип точки останова позволяет определить условие или критерии при активации точки останова. В этом меню можно также выбрать параметр Включить только при достижении следующей точки останова для создания последовательного выполнения точек останова.

Снимок экрана: задание условной точки останова в Visual Studio.

Можно также использовать временную точку останова, если вы хотите разорвать код. Можно применить временные точки останова, щелкнув правой кнопкой мыши столбец точки останова и выбрав " Вставить временную точку останова". Временные точки останова будут удалены после первого попадания.

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

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

Снимок экрана: окно

Средства отладки в Visual Studio

После настройки точек останова и запуска приложения на экране появятся новые окна сведений и элементы управления.

Снимок экрана: обзор отладчика в Visual Studio.

  1. Элементы управления для запуска отладчика
  2. Текущая точка останова и строка выполнения
  3. Окно контрольных значений для мониторинга значений переменных
  4. Окно точек останова для просмотра всех точек останова

Вы также можете получить доступ к другим полезным окнам отладки, выбрав "Отладка>Windows" на верхней панели навигации. Например, часто используемые средства включают:

  1. Окно стека вызовов: позволяет просмотреть, какие методы были вызваны.
  2. Окно интерпретации. Позволяет записывать и выражения во время отладки.
  3. Окно автозапуска: автоматически добавляет часы в переменные в текущем контексте.
  4. Окно вывода: отображает выходные данные инструкций ведения журнала или код, записываемый в консоль.

Снимок экрана: параметры окна отладки Visual Studio.

Просмотр и изменение состояния переменных

При анализе причины дефекта программы можно отслеживать состояние переменных, чтобы найти непредвиденные изменения. В Visual Studio есть несколько параметров окна контрольных значений, которые можно использовать в разных контекстах отладки для отслеживания состояния переменных.

  1. Окно просмотра: позволяет отслеживать выбранные переменные и выражения с течением времени при отладке.
  2. Окно "Локальные" — автоматически отображаются переменные в текущей области выполнения и контексте.
  3. Окно автозапуска: автоматически отображает любую переменную, используемую в текущей или предыдущей строке.
  4. Немедленное окно: позволяет оценивать выражения и переменные в реальном времени во время отладки.

Снимок экрана: окно

Большинство этих окон также позволяют дважды щелкнуть значение переменной и изменить его значение во время отладки.

Окна "Контрольные " полезны для отслеживания переменных во время выполнения кода. Вы можете щелкнуть правой кнопкой мыши переменную в редакторе и выбрать команду "Добавить для просмотра". Эта переменная теперь отображается в окне просмотра и обновляется автоматически при выполнении приложения.

Вы также можете щелкнуть правой кнопкой мыши переменные в окнах "Авто" или "Локальные " для добавления часов.

Другим эффективным способом просмотра и анализа сведений о переменной во время отладки является использование подсказок по данным. При приостановке в точке останова наведите указатель мыши на любую переменную в текущей области. Появится подсказка по данным с именем и текущим значением свойств переменной. Наведите указатель мыши на параметр функции или переменную непосредственно в окне редактора, чтобы просмотреть значение.

Стек вызовов

Каждый раз, когда программа вводит функцию, в стек вызовов добавляется соответствующая запись. Если приложение является сложным, и функции вызываются внутри других функций несколько раз, эти вызовы можно отслеживать с помощью стека вызовов.

Он полезен для поиска источника исключения. При неожиданном сбое в программе часто отображается что-то в консоли, как показано в следующем примере:

Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at OrderProcessor.OrderQueue.ProcessNewOrders(String[] orderIds) in C:\Users\Repos\OrderProcessor\OrderQueue.cs:line 12
   at OrderProcessor.Program.Main(String[] args) in C:\Users\Repos\OrderProcessor\Program.cs:line 9

Группа строк at [...] под сообщением об ошибке называется трассировкой стека. В трассировке стека указаны имя и источник каждой функции, которая была вызвана до возникновения исключения. Однако расшифровать его может быть немного сложно, так как он также включает внутренние функции из среды выполнения .NET.

Окно стека вызовов Visual Studio удобно здесь. Она отфильтровывает ненужные данные, чтобы по умолчанию отображались только соответствующие функции из собственного кода. Затем можно очистить этот стек вызовов, чтобы узнать, что стало причиной исключения.

Снимок экрана: окно

В следующем уроке вы выполните упражнение с помощью отладчика, чтобы исправить ошибку в коде Фибоначчи, который мы продемонстрировали ранее.

Установка параметров отладчика

В Visual Studio можно указать различные параметры поведения отладчика. В том числе, как отображаются переменные, отображаются ли определенные предупреждения, как устанавливаются точки останова и как критически влияют на выполнение программ. Можно также настроить сборку проекта как конфигурацию отладки или выпуска.

Чтобы настроить параметры отладчика, используйте меню "Параметры> инструментов>", которое предоставляет различные категории параметров. Наиболее распространенные варианты находятся в категории "Общие ".