Поделиться через


Руководство. Отладка консольного приложения .NET с помощью Visual Studio Code

В этом руководстве представлены средства отладки, доступные в Visual Studio Code для работы с приложениями .NET.

В этом руководстве представлены средства отладки, доступные в GitHub Codespaces для работы с приложениями .NET.

Необходимые условия

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

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

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

  1. Запустите Visual Studio Code.

  2. Откройте папку проекта, созданного в Создание консольного приложения .NET с помощью Visual Studio Code.

  3. Откройте файл Program.cs.

  4. Задайте точку останова в строке, отображающей имя, дату и время, щелкнув левое поле окна кода. Левое поле находится слева от номеров строк. Другие способы настройки точки останова — это нажатие клавиши F9 или выбор Запуск>Переключить точку останова в меню при выборе строки кода.

    Visual Studio Code указывает строку, в которой задается точка останова, отображая красную точку в левом поле.

    набор точек останова

  1. Откройте GitHub Codespace, которое вы создали в рамках задания Создание консольного приложения .NET с использованием Visual Studio Code.

  2. Откройте файл HelloWorld.cs .

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

    набор точек останова

Запуск отладки

Отладка и Релиз — это встроенные конфигурации сборки .NET. Вы используете конфигурацию отладки для диагностики и конфигурацию релиза для окончательной дистрибуции.

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

  1. Откройте представление отладки, выбрав значок отладки в меню слева.

    Откройте вкладку отладки в Visual Studio Code

  2. Выберите Запуск и отладка. При появлении запроса выберите C#, а затем выберите C#: запустить стартовый проект. Другие способы запустить программу в режиме отладки— это нажатие клавиши F5 или выбор Выполнить>Начать отладку из меню.

    начать отладку

  3. Если будет предложено выбрать конфигурацию запуска, выберите C#: Отладка активного файла.

  4. Перейдите на вкладку консоли отладки, чтобы увидеть запрос "Как вас зовут?", который программа отображает перед ожиданием ответа.

    Выберите вкладку

  5. Введите строку текста в окне консоли отладки в ответ на запрос имени, а затем нажмите клавишу Enter .

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

    достигнута точка останова, показаны локальные переменные

По умолчанию GitHub Codespaces использует конфигурацию отладки сборки, поэтому перед отладкой не нужно изменять ее.

  1. Откройте представление отладки, выбрав значок отладки в меню слева.

    Откройте вкладку отладки в Visual Studio Code

  2. Выберите Запуск и отладка. При появлении запроса выберите C# в качестве отладчика и выберите C#: Отладка активного файла в качестве конфигурации запуска.

  3. Перейдите на вкладку консоли отладки, чтобы увидеть запрос "Как вас зовут?", который программа отображает перед ожиданием ответа.

  4. Введите строку текста в окне консоли отладки в ответ на запрос имени, а затем нажмите клавишу Enter .

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

    достигнута точка останова, показаны локальные переменные

Использование консоли отладки

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

  1. Выберите вкладку консоли отладки.

  2. Введите name = "Gracie" в строку запроса в нижней части окна консоли отладки и нажмите Ввод.

    Изменение значений переменных

  3. Введите currentDate = DateTime.Parse("2026-01-28T20:54:00Z").ToUniversalTime() в нижней части окна консоли отладки и нажмите клавишу ВВОД.

    В окне переменных отображаются новые значения переменных и .

  4. Продолжайте выполнение программы, выбрав кнопку Продолжить на панели инструментов. Другим способом продолжения является нажатие клавиши F5.

    Продолжить отладку

    Значения в консольном окне соответствуют изменениям, внесённым в отладочной консоли.

    Терминал с введенными значениями

  5. Нажмите Enter, чтобы выйти из приложения и остановить отладку.

Установка условной точки останова

Программа отображает строку, в которую вводит пользователь. Что произойдет, если пользователь ничего не вводит? Это можно проверить с помощью полезной функции отладки, называемой условной точки останова.

  1. Щелкните правой кнопкой мыши (Ctrl-щелкните на macOS) на красную точку, представляющую точку останова. В контекстном меню выберите Изменить точку останова, чтобы открыть диалоговое окно, позволяющее ввести условное выражение.

    контекстное меню точки останова

  2. Выберите Expression в раскрывающемся списке, введите следующее условное выражение и нажмите клавишу ВВОД.

    String.IsNullOrEmpty(name)
    

    Ввод условного выражения

    Каждый раз при нажатии точки останова отладчик вызывает метод String.IsNullOrEmpty(name), и он прерывается в этой строке, только если вызов метода возвращает true.

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

  3. Запустите программу с отладкой, нажав клавиши F5.

  4. На вкладке консоли отладки нажмите клавишу ВВОД при появлении запроса на ввод имени.

    Так как указанное условие (name либо null, либо String.Empty) удовлетворено, выполнение программы останавливается при достижении точки останова и до запуска метода Console.WriteLine.

    В окне переменных показано, что значение переменной равно или .

  5. Убедитесь, что значение является пустой строкой, введя следующую инструкцию в командной строке консоли отладки и нажав клавишу ВВОД . Результатом является true.

    name == String.Empty
    
  6. Нажмите кнопку "Продолжить" на панели инструментов, чтобы продолжить выполнение программы.

  7. Нажмите клавишу Enter, чтобы выйти из программы и остановить отладку.

  8. Удалите точку останова, щелкнув по точке в левой панели окна редактирования кода. Другие способы очистки точки останова— это нажатие клавиши F9 или выбор запуск > переключение точки останова в меню во время выбора строки кода.

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

Пошаговое выполнение программы

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

  1. Задайте точку останова в строке кода, отображающей запрос "Как вас зовут?".

  2. Нажмите клавишу F5, чтобы начать отладку.

    Visual Studio Code выделяет строку точки останова.

    На этом этапе окно переменных показывает, что массив пуст, а и имеют значения по умолчанию.

  3. Выберите Шаг внутрь на панели инструментов отладки или нажмите клавишу F11.

    кнопка Step-Into

    Visual Studio Code выделяет следующую строку.

  4. Visual Studio Code запускает Console.WriteLine для запроса имени и выделяет следующую строку выполнения. Следующая строка — это Console.ReadLine для name. Окно переменных осталось без изменений, а на вкладке терминала отображается запрос "Как вас зовут?".

  5. Выберите шаг в или нажмите клавишу F11.

    Visual Studio Code выделяет назначение переменных name. В окне переменных показано, что name по-прежнему null.

  6. Ответьте на запрос, введя строку на вкладке терминала и нажав Enter.

    Вкладка консоли отладки может не отображать введенную строку при вводе, но метод будет записывать входные данные.

  7. Выберите Войти в или нажмите F11.

    Visual Studio Code выделяет назначение переменных currentDate. В окне переменных отображается значение, возвращаемое вызовом метода Console.ReadLine. На вкладке терминала отображается строка, введенная в запросе.

  8. Выберите шаг в или нажмите клавишу F11.

    В окне переменных отображается значение переменной currentDate после присваивания из свойства DateTime.Now.

  9. Выберите Войти или нажмите клавишу F11.

    Visual Studio Code вызывает метод Console.WriteLine(String, Object, Object). В окне консоли отображается отформатированная строка.

  10. Выберите шаг выхода или нажмите клавиши SHIFT+F11.

    кнопка Step-Out

    В терминале отображается сообщение "Нажмите любой ключ для выхода..."

  11. Нажмите любой ключ, чтобы выйти из программы.

Используйте конфигурацию сборки Release

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

Чтобы создать и проверить версию консольного приложения, откройте терминала и выполните следующую команду:

dotnet run --configuration Release

Чтобы создать и проверить версию выпуска консольного приложения, выполните следующую команду в терминале:

dotnet run --configuration Release HelloWorld.cs

Дальнейшие действия

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