Практическое руководство. Устранение ошибок присоединения
Обновлен: Ноябрь 2007
Этот раздел применим для следующих версий.
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
![]() |
![]() |
![]() |
![]() |
Standard |
![]() |
![]() |
![]() |
|
Pro и Team |
![]() |
![]() |
![]() |
Условные обозначения:
![]() |
Применимо |
![]() |
Неприменимо |
![]() |
Команда или команды по умолчанию скрыты. |
При присоединении отладчика Visual Studio к выполняющемуся процессу этот процесс может содержать один или несколько типов кода. Типы кода, к которым может присоединяться отладчик, — это машинный, управляемый, код T-SQL и код сценариев. Эти типы кодов отображаются и выбираются в диалоговом окне Присоединение к процессу.
![]() |
---|
Для присоединения отладчика к управляемому коду на языке C++ код должен предоставлять DebuggableAttribute. Это можно добавить в код автоматически, путем связывания с параметром /ASSEMBLYDEBUG компоновщика. |
Иногда отладчик может успешно присоединяться к одному типу кода, но не к другому. Такое может происходить при попытке присоединения к процессу, выполняющемуся на удаленном компьютере. На удаленном компьютере для одних типов кода могут иметься компоненты удаленной отладки, а для других — нет. Такое также может происходить при попытке присоединиться к двум или более процессам для прямой отладки базы данных. Отладка SQL поддерживает присоединение только к одному процессу.
Если отладчик может присоединиться не ко всем типам кода, то будет отображено примерно такое сообщение:
The requested attach was not completed successfully.
Program types successfully attached are:
Common Language Runtime
Native (Win32)
Microsoft T_SQL
Program types that failed to attach are:
Script
Если отладчик успешно подключается хотя бы к одному типу кода, то можно приступать к отладке процесса. Но отлаживать можно будет только те типы кода, к которым удалось подсоединиться. В приведенном выше сообщении указано, что не удалось присоединиться к типу кода сценариев. Поэтому проводить отладку кода сценариев в данном процессе не удастся. Код сценариев в этом процессе будет выполняться, но задавать в этом сценарии точки останова, просматривать данные и выполнять другие операции отладки не удастся.
Если нужны более конкретные сведения о том, почему отладчику не удалось присоединиться к некоторому типу кода, можно попытаться повторно присоединиться только к этому типу кода.
Чтобы получить подробные сведения о том, почему не удалось присоединиться к типу кода
Отключитесь от процесса. Для этого в меню Отладка выберите Отсоединить все.
Вновь подключитесь к процессу, выбрав единственный тип программы.
В диалоговом окне Присоединение к процессу выберите процесс в списке Доступные процессы.
Нажмите кнопку Выбрать.
В диалоговом окне Выбор типа кода выберите Выполнять отладку кода следующих типов и выберите тип кода, к которому не удалось присоединиться. Отмените выбор всех остальных типов кода.
Нажмите кнопку ОК. Диалоговое окно Выбор типа кода будет закрыто.
В диалоговом окне Присоединение к процессу нажмите Присоединиться.
На этот раз присоединение не пройдет полностью, и будет выдано сообщение о конкретной ошибке.