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


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

Обновлен: Ноябрь 2007

Этот раздел применим для следующих версий.

Выпуск

Visual Basic

C#

C++

Web Developer

Экспресс-выпуск

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

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

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

Standard

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

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

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

Pro и Team

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

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

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

Условные обозначения:

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

Применимо

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

Неприменимо

Тема применяется, но команда по умолчанию сокрыта

Команда или команды по умолчанию скрыты.

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

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

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

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

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

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

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

h5e30exc.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

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

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

См. также

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

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

Ссылки

DebuggerNonUserCodeAttribute

DebuggerHiddenAttribute

DebuggerStepThroughAttribute