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


Отладка с помощью Visual Studio для Mac

Важно!

Visual Studio для Mac планируется выйти на пенсию 31 августа 2024 года в соответствии с современной политикой жизненного цикла Майкрософт. Хотя вы можете продолжать работать с Visual Studio для Mac, есть несколько других вариантов для разработчиков на Mac, таких как предварительная версия нового расширения комплекта разработки C# для VS Code.

Дополнительные сведения о временной шкале поддержки и альтернативах.

Visual Studio для Mac содержит отладчики с поддержкой приложений .NET Core, .NET Framework, Unity и Xamarin.

Visual Studio для Mac использует отладчик Mono Soft Debugger, который реализован в среде выполнения Mono, что позволяет Visual Studio для Mac выполнять отладку управляемого кода на всех платформах.

Отладчик

Visual Studio для Mac использует Mono Soft Debugger для отладки управляемого кода (C# и F#) во всех приложениях Xamarin. Mono Soft Debugger отличается от обычных отладчиков тем, что является взаимодействующим и встроен в среду выполнения Mono. Созданный код и среда выполнения Mono взаимодействуют с интегрированной средой разработки (IDE) для обеспечения отладки. Среда выполнения Mono предоставляет функции отладки через протокол связи, подробнее о котором можно прочитать в документации по Mono.

"Жесткие" отладчики, такие как LLDB или MDB, контролируют выполнение отлаживаемой программы без взаимодействия с ней и учета ее особенностей. Они по-прежнему могут быть полезны при отладке приложений Xamarin, если требуется отладка машинного кода iOS или Android.

Для приложений .NET Core и ASP.NET Core Visual Studio для Mac использует отладчик .NET Core. Это взаимодействующий отладчик, который работает со средой выполнения .NET.

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

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

Debug configuration

Задание точки останова

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

Setting breakpoint in margin

Вы можете просмотреть все точки останова, заданные в коде, в окне точек останова:

List of breakpoints

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

Чтобы начать отладку, выберите целевой браузер, устройство или подходящий имитатор/эмулятор:

Debug configurationSelect target device

После этого разверните приложение, нажав кнопку Воспроизвести или клавиши CMD+ВВОД. При попадании в точку останова код выделяется желтым цветом:

Highlight showing breakpoint has been hit

На этом этапе можно применить средства отладки, например используемые для проверки значений объектов, для получения дополнительных сведений о том, что происходит в коде:

Debug visualizations

Условные точки останова

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

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

Breakpoint context menu

  • Чтобы добавить условие в существующую точку останова, щелкните ее правой кнопкой мыши и выберите пункт Свойства точки останова либо нажмите кнопку "Изменить точку останова" в окне точек останова, как показано ниже:

Edit existing Breakpoint in Breakpoints Window

Затем можно ввести условие, при котором активируется эта точка останова:

Edit Breakpoint conditions

Пошаговая отладка

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

Buttons to step through code

Ниже указаны эти четыре кнопки:

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

Выбор следующей исполняемой инструкции

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

Drag and drop arrow to set next statement

Внимание

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

Отладка библиотек классов Mono

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

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

Чтобы включить ее, перейдите в раздел Visual Studio для Mac > Параметры > Отладчик и убедитесь, что параметр Выполнение по шагам во внешнем кодевыбран как показано ниже:

Step into external code option

См. также