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


Практическое руководство. Переход в пошаговый режим выполнения "Только мой код"

Этот раздел применим к:

Выпуск

Visual Basic

C#

F#

C++

Web Developer

Express

Тема применяется Тема применяется

Тема применяется

Только управляемый код

Тема применяется

Pro, Premium и Ultimate

Тема применяется Тема применяется

Тема применяется

Только управляемый код

Тема применяется

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

Чтобы отличить пользовательский код от другого кода, отладчик рассматривает три элемента: DBG-файлы, PDB-файлы и оптимизацию.

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

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

Три атрибута влияют на то, что отладчик считает "моим кодом": DebuggerNonUserCodeAttribute говорит отладчику, что применяемый код не является "моим кодом". DebuggerHiddenAttribute скрывает код от отладчика, даже если режим "Только мой код" включен. DebuggerStepThroughAttribute указывает отладчику выполнить в пошаговом режим код, к которому он применяется, а не осуществлять шаг с заходом в этот код.

Если включен режим "Только мой код", можно выбрать Прервать в меню Отладка и остановить выполнение в месте, где нет собственного кода пользователя. В этом случае код не отображается. Кроме того, если выбрана команда Шаг, она переведет пользователя на следующую строку пользовательского кода.

Программные инструкции прерывания, такие как операторы Visual Basic Stop, обрабатываются по-другому. Отладчик всегда останавливается на этих инструкциях, даже если включен режим "Только мой код". В этом случае код, не написанный пользователем, показывается, а не скрывается, но пошаговое выполнение будет по-прежнему переводить пользователя на следующую строку пользовательского кода.

Примечание

Режим "Только мой код" не поддерживается для проектов устройств.

Чтобы включить или отключить режим отладки "Только мой код"

  1. В меню Сервис выберите пункт Параметры.

  2. В диалоговом окне "Параметры" откройте узел Отладка и выберите Общие.

  3. Установите или снимите флажок Включить режим "Только мой код".

См. также

Ссылки

DebuggerNonUserCodeAttribute

DebuggerHiddenAttribute

DebuggerStepThroughAttribute

Основные понятия

Управление выполнением