Практическое руководство. Переход в пошаговый режим выполнения "Только мой код"
Обновлен: Ноябрь 2007
Этот раздел применим для следующих версий.
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
Только управляемый код |
|||
Standard |
Только управляемый код |
|||
Pro и Team |
Только управляемый код |
Условные обозначения:
Применимо |
|
Неприменимо |
|
Команда или команды по умолчанию скрыты. |
Иногда во время отладки может потребоваться отображать только код, созданный самостоятельно, и пропускать другой код, например, системные вызовы. Для этого существует возможность отладки в режиме "Только мой код". В режиме "Только мой код" код, написанный не пользователем, скрывается и не отображается в окнах отладчика. При пошаговом выполнении отладчик проходит любой код, написанный не пользователем, но не останавливается в нем.
Чтобы отличить код пользователя ("Мой код") от другого кода, отладчик рассматривает три элемента: Файлы DBG, PDB-файлы и оптимизацию.
В стандартной отладочном построении оптимизация отключена, а отладочные символы создаются для всех модулей. При запуске отладочной построения эти модули считаются "Моим кодом". Если вызвать библиотечную функцию, оптимизированную и без отладочных символов, она не будет "Моим кодом". В режиме "Только мой код" выполнение не останавливается в точках останова в коде библиотек, который обычно не интересует с точки зрения отладки. В окне "Точки останова" они появятся со значком "Отключенная точка останова".
Чтобы просматривать весь код и останавливаться на всех точках останова, можно отключить режим "Только мой код", воспользовавшись диалоговым окном Параметры.
На то, считается ли код "Моим кодом", влияют также следующие три атрибута: DebuggerNonUserCodeAttribute сообщает отладчику, что код с этим атрибутом не является "Моим кодом". DebuggerHiddenAttribute скрывает код от отладчика, даже в том случае, если режим "Только мой код" отключен. Атрибут DebuggerStepThroughAttribute предписывает отладчику проходить через код, а не выполнять его пошагово.
Если включен режим "Только мой код", можно выбрать Прервать в меню Отладка и остановить выполнение в месте, где нет собственного кода пользователя. В этом случае код не отображается. Кроме того, если выбрана команда Шаг, она переведет пользователя на следующую строку пользовательского кода.
Программные инструкции прерывания, такие как операторы Visual Basic Stop, обрабатываются по-другому. Отладчик всегда останавливается на этих инструкциях, даже если включен режим "Только мой код". В этом случае код, не написанный пользователем, показывается, а не скрывается, но пошаговое выполнение будет по-прежнему переводить пользователя на следующую строку пользовательского кода.
Примечание. |
---|
Режим "Только мой код" не поддерживается для проектов устройств. |
Чтобы включить или отключить режим отладки "Только мой код"
В меню Сервис выберите пункт Параметры.
В диалоговом окне "Параметры" откройте узел Отладка и выберите Общие.
Установите или снимите флажок Включить режим "Только мой код".