Упражнение. Выполнение кода в среде отладки
Пользовательский интерфейс Visual Studio Code позволяет разработчикам запускать свой код в среде отладки. Поддержка отладки предоставляется расширениями, а для разработчиков C# поддержка отладчика предоставляется тем же расширением, которое обеспечивает поддержку разработки кода и IntelliSense.
Взаимодействие отладчика и приложения
Отладчик кода можно использовать для приостановки и возобновления выполнения кода, проверки состояния переменной и даже изменения значений, назначенных переменным во время выполнения. Возможно, вам интересно, как управлять отладчиком и изменять работающее приложение? Короткий ответ заключается в том, что отладчик имеет доступ к среде выполнения приложения и исполняемому коду.
Замечание
Взаимодействие отладчика с средой выполнения — это расширенная тема. Кроме того, понимание того, как отладчик работает за кулисами, не является обязательным требованием для использования отладчика. Однако следующее описание может удовлетворить ваше любопытство.
Отладчик Visual Studio Code для C# использует среду выполнения .NET для запуска и взаимодействия с приложением. При запуске отладчика он создает новый экземпляр среды выполнения и запускает приложение в этом экземпляре. Среда выполнения включает интерфейс программирования приложения (API), который отладчик использует для подключения к выполняемому процессу (приложение).
После запуска приложения и подключения отладчика отладчик взаимодействует с запущенным процессом с помощью API отладки среды выполнения .NET и стандартного протокола отладки. Отладчик может взаимодействовать с процессом (приложением, работающим в экземпляре среды выполнения .NET), задав точки останова, пошаговое выполнение кода и проверку переменных. Интерфейс отладчика Visual Studio Code позволяет перемещаться по исходному коду, просматривать стеки вызовов и оценивать выражения.
Наиболее распространенным способом указать сеанс отладки является конфигурация запуска в файле launch.json. Этот подход является параметром по умолчанию, включенным средствами отладчика. Например, если вы создаете консольное приложение C# и выберите "Начать отладку " в меню "Запуск ", отладчик использует этот подход для запуска, подключения и взаимодействия с приложением.
Создайте новый проект кода
Первым шагом в обучении средств отладчика является создание проекта кода, который можно запустить в отладчике.
Откройте новый экземпляр Visual Studio Code.
В меню "Файл" выберите "Открыть папку".
В диалоговом окне "Открыть папку " перейдите в папку "Рабочий стол Windows".
В диалоговом окне "Открыть папку " выберите "Создать папку".
Назовите новую папку Debug101 и выберите "Выбрать папку".
В меню "Терминал " выберите "Новый терминал".
Для создания консольного приложения можно использовать команду .NET CLI.
В командной строке панели терминала введите следующую команду:
dotnet new consoleЗакройте панель ТЕРМИНАЛА.
Изучение конфигураций запуска для отладки
Visual Studio Code использует файл конфигурации запуска, чтобы указать приложение, которое выполняется в среде отладки.
Если папка Debug101 не содержит файл Debug101.sln, выберите Program.cs и убедитесь, что файл .sln создан.
Открытие файла кода C# инициирует проверку среды на наличие файлов проекта. Файл .sln — это файл решения, используемый Visual Studio для управления проектами и обычно создается автоматически при создании проекта в Visual Studio Code. Файл .sln используется отладчиком для идентификации проекта, который должен выполняться в среде отладки.
В меню "Вид" выберите палитру команд.
В командной строке введите .net: g , а затем выберите .NET: Создать ресурсы для сборки и отладки.
Обратите внимание, что в папку проекта добавлена новая
.vscodeпапка.
Папка
.vscodeсодержит файлы, используемые для настройки среды отладки.Разверните папку
.vscodeи выберите файл launch.json .Потратьте минуту, чтобы изучить файл launch.json.
Файл конфигураций запуска может включать несколько конфигураций. Каждая конфигурация включает коллекцию атрибутов, которые используются для определения этой конфигурации.
Обратите внимание, что атрибут prelaunchTask указывает задачу сборки .
В папке
.vscodeвыберите tasks.json.Обратите внимание, что файл tasks.json содержит задачу сборки для проекта кода.
Закройте файлыlaunch.json и tasks.json .
Более подробно изучите атрибуты конфигурации запуска далее в этом модуле.
Запустите код через меню "Запуск"
Меню "Запуск " в Visual Studio Code предоставляет возможность запуска кода с отладчиком или без нее.
Откройте файл Program.cs .
Замените содержимое файла Program.cs следующим кодом:
/* This code uses a names array and corresponding methods to display greeting messages */ string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" }; string messageText = ""; foreach (string name in names) { if (name == "Sophia") messageText = SophiaMessage(); else if (name == "Andrew") messageText = AndrewMessage(); else if (name == "AllGreetings") messageText = SophiaMessage(); messageText = messageText + "\n\r" + AndrewMessage(); Console.WriteLine(messageText + "\n\r"); } bool pauseCode = true; while (pauseCode == true); static string SophiaMessage() { return "Hello, my name is Sophia."; } static string AndrewMessage() { return "Hi, my name is Andrew. Good to meet you."; }В меню "Файл" нажмите кнопку "Сохранить".
Откройте меню "Выполнить ".
Обратите внимание, что меню "Запуск " предоставляет параметры запуска кода с отладкой или без нее.
В меню "Запуск " выберите "Запуск без отладки"
Обратите внимание, что на панели DEBUG CONSOLE отображаются выходные данные консоли, а на панели инструментов отладки отображаются элементы управления выполнением.
Панель КОНСОЛИ ОТЛАДКИ должна отображаться под кодовым редактором. По умолчанию панель инструментов отладки (небольшая панель инструментов, отображающая элементы управления выполнением кода) находится над редактором кода и по горизонтали находится в окне Visual Studio Code.
На панели инструментов отладки нажмите кнопку "Остановить".
Запуск сеанса отладки из меню "Запуск"
Меню "Запуск " включает параметр запуска сеанса отладки.
В меню "Запуск" выберите "Начать отладку"
Потратьте минуту, чтобы просмотреть сообщения, отображаемые на панели "КОНСОЛЬ ОТЛАДКИ".
Выходные данные вашего приложения такие же, как при запуске без отладки, но отображаются и другие сообщения, связанные с подготовкой среды отладки.
Обратите внимание на сообщения о загрузке ресурсов .NET и приложении Debug101.
Первые два сообщения сообщают о загрузке библиотеки .NET, а затем приложения Debug101.
Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.0\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. Loaded 'C:\Users\someuser\Desktop\Debug101\bin\Debug\net10.0\Debug101.dll'. Symbols loaded.Отладчик использует специальный экземпляр среды выполнения .NET для управления выполнением приложения и оценки состояния приложения.
На панели инструментов отладки нажмите кнопку "Остановить".
Запускайте код из режима "Запуск и отладка"
Представление RUN AND DEBUG в Visual Studio Code поддерживает широкий интерфейс отладки.
Перейдите в режим выполнения и отладки.
В представлении RUN AND DEBUG выберите "Начать отладку".
Кнопка "Начать отладку " — зеленая стрелка на панели управления в верхней части представления.
Обратите внимание, что на панели DEBUG CONSOLE отображаются те же сообщения о настройке отладчика, отображаемого при запуске процесса отладки из меню "Запуск ".
На панели инструментов отладки нажмите кнопку "Остановить".
Проверка выходных данных из приложения
Прежде чем закрыть панель КОНСОЛИ ОТЛАДКИ, уделите время, чтобы просмотреть результаты, которые создал ваш код.
Обратите внимание, что приветственное сообщение Эндрю повторяется неожиданно.
В оставшейся части этого модуля вы будете использовать средства отладчика Visual Studio Code для изучения проблем с программированием.
Обзор
Ниже приведены некоторые важные моменты, которые следует помнить из этого урока:
- Отладчик Visual Studio Code для C# использует среду выполнения .NET для запуска и взаимодействия с приложением.
- Меню Run в Visual Studio Code имеет параметры для запуска приложения с присоединенным отладчиком или без него.
- Панель инструментов отладки включает кнопку остановки выполняемого процесса.
- Представление RUN AND DEBUG включает возможность запуска отладки приложения.