Рабочие режимы
Существует три режима, в которых интегрированная среда разработки может работать следующим образом:
-
Переход пользовательского обработчика отладки между этими режимами — это решение о реализации, которое требует ознакомления с механизмами перехода. DE может или не может напрямую реализовать эти режимы. Эти режимы — это режимы отладки пакетов, которые переключаются на основе действий пользователя или событий из DE. Например, переход от режима выполнения к режиму останова вызван остановкой события из DE. Переход от перерыва к режиму выполнения или режиму шага запускается пользователем, выполняющим такие операции, как шаг или выполнение. Дополнительные сведения о переходах DE см. в разделе "Управление выполнением".
Режим конструктора
Режим конструктора — это состояние отладки Visual Studio, в течение которого можно задать функции отладки в приложении.
В режиме разработки используются только несколько функций отладки. Разработчик может задать точки останова или создать выражения часов. DE никогда не загружается или вызывается, пока интегрированная среда разработки находится в режиме разработки. Взаимодействие с DE происходит только в режимах выполнения и останова.
Режим выполнения
Режим выполнения происходит при выполнении программы в сеансе отладки в интегрированной среде разработки. Приложение запускается до завершения, пока не будет достигнута точка останова или до тех пор, пока не будет создано исключение. Когда приложение запускается до завершения, de de переходит в режим конструктора. При нажатии точки останова или возникновении исключения de DE переходит в режим останова.
Режим останова
Режим останова возникает при приостановке выполнения программы отладки. Режим останова предлагает разработчику моментальный снимок приложения во время перерыва и позволяет разработчику анализировать состояние приложения и изменять способ выполнения приложения. Разработчик может просматривать и изменять код, проверять или изменять данные, перезапустить приложение, завершить выполнение или продолжить выполнение с той же точки.
Режим останова вводится при отправке синхронного события остановки. Синхронные события остановки, также называемые событиями остановки, уведомляют диспетчер отладки сеансов (SDM) и интегрированную среду разработки, что отлаживаемое приложение перестало выполнять код. Интерфейсы IDebugBreakpointEvent2 и IDebugExceptionEvent2 являются примерами событий остановки.
События остановки продолжаются вызовом одного из следующих методов, которые переходят отладчика из режима останова в режим выполнения или режима шага.
Режим шага
Режим шага возникает, когда программа выполняет шаги к следующей строке кода или в нее или из нее. Шаг выполняется путем вызова шага метода. Для этого метода необходимо DWORD
указать перечисления STEPUNIT и STEPKIND в качестве входных параметров.
Когда программа успешно выполняет переход к следующей строке кода или функции или выполняется на курсоре или в заданную точку останова, de автоматически переходит в режим останова.