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

Важно!

Корпорация Майкрософт объявила о прекращении работы Visual Studio для Mac. Visual Studio для Mac больше не будет поддерживаться с 31 августа 2024 г. Ниже представлены возможные альтернативы.

  • Visual Studio Code с пакетом разработки C# и связанными расширениями, такими как .NET MAUI и Unity.
  • Visual Studio, запущенная в Windows на виртуальной машине Mac.
  • Visual Studio, запущенная в Windows на виртуальной машине в облаке.

Дополнительные сведения см. в Visual Studio для Mac объявлении о выходе на пенсию.

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

Необходимые компоненты

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

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

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

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

  1. Запустите Visual Studio для Mac.

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

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

    Visual Studio toolbar with debug highlighted

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

Точка останова приостанавливает выполнение приложения на инструкции, предшествующей той строке, в которой установлена точка останова.

  1. Установите точку останова в строке, где отображается имя, дата и время. Для этого поместите курсор в строку кода и нажмите клавиши \ (Command+\). Другой способ задать точку останова — выбрать точку останова отладки>в меню.

    Подсветка текста и красная точка в левом поле обозначает строку с точкой останова Visual Studio.

    Visual Studio Program window with breakpoint set

  2. Чтобы запустить программу в режиме отладки, нажмите клавиши (Command+ВВОД). Еще один способ запуска отладки — выбрать в меню параметры Отладка>Начать отладку.

  3. Когда программа запросит имя, введите любую строку в окне терминала и нажмите клавишу ВВОД.

  4. Выполнение программы остановится, когда будет достигнута точка останова, то есть перед выполнением метода Console.WriteLine.

    Screenshot of a breakpoint in Visual Studio

Использование окна "Интерпретация"

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

  1. Если окно интерпретации не отображается, отобразите его, выбрав "Просмотреть>отладку Windows>Интерпретация".

  2. Введите name = "Gracie" в окне Интерпретация и нажмите клавишу ВВОД.

  3. Введите currentDate = currentDate.AddDays(1) в окне Интерпретация и нажмите клавишу ВВОД.

    В окне Интерпретация отображается новое значение переменной строки и свойства значения DateTime.

    Immediate Window in Visual Studio

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

    Locals Window in Visual Studio

  4. Чтобы продолжить отладку, нажмите клавиши (Command+ВВОД).

    Значения, отображаемые в терминале, соответствуют изменениям, произведенным в окне Интерпретация.

    Если окно терминала не отображается, выберите Terminal - HelloWorld (Терминал — HelloWorld) в нижней панели навигации.

    Terminal - Hello World in bottom navigation bar

  5. Нажмите любую клавишу для выхода из программы.

  6. Закройте окно терминала.

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

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

  1. Удерживая нажатой клавишу CTRL, щелкните красную точку, представляющую точку останова. В контекстном меню выберите Изменить точку останова.

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

    String.IsNullOrEmpty(name)
    

    Editor showing breakpoint settings panel

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

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

  3. Чтобы начать отладку, нажмите клавиши (Command+ВВОД).

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

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

  5. Выберите окно Локальные, в котором отображаются значения локальных переменных для текущего выполняемого метода. В нашем примере этим методом является Main. Обратите внимание, что переменная name имеет значение "", то есть String.Empty.

  6. Можно также увидеть, что переменная содержит пустую строку, введя имя переменной name в окне Интерпретация и нажав клавишу ВВОД.

    Immediate window showing name is an empty string

  7. Чтобы продолжить отладку, нажмите клавиши (Command+ВВОД).

  8. В окне терминала нажмите любую клавишу, чтобы выйти из программы.

  9. Закройте окно терминала.

  10. Очистите точку останова. Для этого щелкните красную точку в левом поле окна с кодом. Другой способ очистить точку останова — выбрать точку останова отладки > при выборе строки кода.

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

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

  1. Установите точку останова на фигурной скобке, обозначающей начало метода Main (нажмите клавишу Command+\).

  2. Чтобы начать отладку, нажмите клавиши (Command+ВВОД).

    Visual Studio останавливается в строке с точкой останова.

  3. Нажмите клавиши ⇧️I (shift+command+I) или выберите "Шаг отладки>в", чтобы перейти к одной строке.

    Следующая выполняемая строка будет выделена, и рядом с ней появится стрелка.

    Visual Studio step into method

    На этом этапе в окне Локальные показано, что массив args пуст, а name и currentDate имеют значения по умолчанию. Кроме того, в Visual Studio открылся пустой терминал.

  4. Нажмите клавиши I (SHIFT+Command+I).

    Visual Studio подсвечивает инструкцию, которая содержит присваивание значения переменной name. В окне Локальные отображается, что name имеет значение null, а в терминале появилась строка "What is your name?" (Введите имя:).

  5. Ответьте на этот запрос, введя строку в окно консоли и нажав клавишу ВВОД.

  6. Нажмите клавиши I (SHIFT+Command+I).

    Visual Studio подсвечивает инструкцию, которая содержит присваивание значения переменной currentDate. В окне Локальные отображается значение, полученное в результате вызова метода Console.ReadLine. В терминале также отображается строка, указанная в командной строке.

  7. Нажмите клавиши I (SHIFT+Command+I).

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

  8. Нажмите клавиши I (SHIFT+Command+I).

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

  9. Нажмите клавиши U (SHIFT+Command+U) или выберите Выполнить>Шаг с выходом.

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

  10. Нажмите любую клавишу для выхода из программы.

Использование конфигурации сборки для выпуска

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

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

  1. Измените конфигурацию сборки на панели инструментов, указав конфигурацию Выпуск вместо конфигурации Отладка.

    default Visual Studio toolbar with release highlighted

  2. Чтобы запустить без отладки, нажмите клавиши (Option+Command+ВВОД).

Следующие шаги

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