Удаленная отладка Visual Studio 2019

Обновлено: 20.11.2024

Что делать с ошибкой, которую можно воспроизвести только на тестовой машине? На помощь приходит удаленная отладка — узнайте, как отлаживать программу на одном компьютере с помощью отладчика на другом.

Удаленная отладка

ПРИМЕЧАНИЕ. Возможность удаленной отладки недоступна в Visual Studio 2005/2008 Express. Это также не работает в выпуске Windows XP Home, вы получите сообщение об ошибке «Не поддерживается в этом выпуске Windows».

В этом руководстве будут использоваться два термина:
Целевая машина – компьютер, на котором запущен сервер удаленной отладки, и приложение/процесс, которые необходимо отладить.
Хост-компьютер – машина. с запущенным отладчиком Visual Studio

Как объяснялось ранее, удаленная отладка — это просто запуск процесса на отдельном компьютере с последующим подключением к этому процессу с помощью отладчика в Visual Studio. Как только это соединение с удаленным процессом установлено, с точки зрения отладчика кажется, что процесс выполняется локально.

Прелесть этого заключается в том, что вам не нужно устанавливать Visual Studio на компьютере только для отладки приложения, вы можете делать это удаленно на другом компьютере, на котором уже установлена ​​Visual Studio. Этот тип изолирует компьютер от любых проблем, связанных с установкой Visual Studio, например, он может устранить проблему тестирования зависимостей установки, когда DLL может быть включена в Visual Studio, но изначально не включена в установку операционной системы. Это причины, по которым вы можете захотеть запустить приложение на нетронутом компьютере.

Прежде чем начать, убедитесь, что ваше приложение завершено на целевом компьютере, а файл базы данных вашей программы (обычно называемый .pdb) находится на хост-компьютере; этот файл содержит информацию о символах, которую отладчик должен будет загрузить после присоединения к процессу. Также убедитесь, что исполняемый файл, который вы копируете, соответствует сборке вашего исходного кода в двоичном виде, иначе ваш отладчик не будет синхронизирован, и возникнут всевозможные проблемы с отслеживанием кода. Эта проблема проявляется в том, что точки останова не совпадают, а контрольные переменные недействительны.

Чтобы настроить сеанс удаленной отладки, сначала необходимо скопировать сервер отладки на целевую машину. Найдите папку в каталоге установки Visual Studio Common7\IDE\Remote Debugger. Например, если вы используете Visual Studio 2008, путь к программе будет [диск]:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger.

Скопируйте весь этот каталог на целевую машину, на которой запущен процесс, который вы хотите отладить. Вы можете поместить его прямо в любое место на диске.

Запустите приложение. Затем перейдите в каталог, в который вы поместили удаленный отладчик, и запустите msvsmon.exe.

Когда вы запустите это, вы можете получить всплывающее диалоговое окно, указывающее, что ваша модель общего доступа и безопасности установлена ​​​​для гостя, просто нажмите «Да».

Далее вы можете получить или не получить диалоговое окно, указывающее, что брандмауэр блокирует сервер отладки или что вам необходимо включить удаленный общий доступ к файлам. Выберите второй или третий вариант и нажмите OK.

Следующее, что вам нужно сделать после запуска, — это перейти в Инструменты/Параметры. Там, где в групповом поле указано «Режим аутентификации», выберите «Без аутентификации», нажмите «Разрешить отладку любому пользователю» и нажмите «ОК». Теперь экран состояния показывает, что аутентификации нет. Если вы ДЕЙСТВИТЕЛЬНО беспокоитесь о безопасной работе, вы можете настроить все это с помощью надлежащей авторизованной учетной записи Windows, но, поскольку обычно вы, вероятно, будете работать в защищенной локальной сети, на самом деле нет необходимости безопасно работать в отладчике.

На хост-компьютере в Visual Studio выберите Инструменты->Присоединить к процессу (Ctrl-Alt-P) и откройте диалоговое окно Присоединить к процессу. Измените транспорт на удаленный (только собственный без аутентификации). Далее, где написано .Qualifier. вам нужно будет нажать кнопку «Обзор», чтобы найти целевую машину в сети. Как только вы найдете целевую машину, диалоговое окно «Присоединение к процессу» обновится с процессами, запущенными в другой системе.

Пролистайте вниз, пока не увидите процесс, к которому хотите присоединиться. Щелкните Прикрепить. Как только вы это сделаете, отладчик подключится к этому удаленному процессу, и вы сможете начать отладку, как если бы вы запускали приложение локально.

Вы можете отлаживать приложение Visual Studio, развернутое на другом компьютере. Для этого вы используете удаленный отладчик Visual Studio.

Подробные инструкции по удаленной отладке см. в этих темах.

Если вы просто хотите загрузить и установить удаленный отладчик и не нуждаетесь в дополнительных инструкциях для своего сценария, выполните действия, описанные в этой статье.

Загрузить и установить удаленные инструменты

На удаленном устройстве или сервере, на котором вы хотите выполнять отладку, а не на компьютере с Visual Studio, загрузите и установите правильную версию удаленных инструментов по ссылкам в следующей таблице.

  • Загрузите самые последние удаленные инструменты для вашей версии Visual Studio. Последняя версия удаленных инструментов совместима с более ранними версиями Visual Studio, но более ранние версии удаленных инструментов несовместимы с более поздними версиями Visual Studio. (Например, если вы используете Visual Studio 2017, загрузите последнее обновление удаленных инструментов для Visual Studio 2017. В этом случае не загружайте удаленные инструменты для Visual Studio 2019.)
  • Загружайте удаленные инструменты с той же архитектурой, что и машина, на которой вы их устанавливаете. Например, если вы хотите отлаживать 32-разрядное приложение на удаленном компьютере с 64-разрядной операционной системой, установите 64-разрядные удаленные инструменты.

Вы можете запустить удаленный отладчик, скопировав msvsmon.exe на удаленный компьютер, а не устанавливая удаленные инструменты. Однако мастер настройки удаленного отладчика (rdbgwiz.exe) доступен только при установке удаленных инструментов. Вам может понадобиться использовать мастер для настройки, если вы хотите запустить удаленный отладчик как службу. Дополнительные сведения см. в разделе (Необязательно) Настройка удаленного отладчика как службы.

  • Для отладки приложений Windows 10 на устройствах ARM используйте ARM64, доступный в последней версии удаленных инструментов.
  • Для отладки приложений Windows 10 на устройствах Windows RT используйте ARM, который доступен только в загружаемых средствах удаленного доступа Visual Studio 2015.

Требования

Поддерживаемые операционные системы

На удаленном компьютере должна быть установлена ​​одна из следующих операционных систем:

Windows 10 (не телефон)

Windows 8 или 8.1 (не телефон)

Пакет обновления 1 для Windows 7

Windows Server 2016

Windows Server 2012 или Windows Server 2012 R2

Windows Server 2008 с пакетом обновления 2, Windows Server 2008 R2 с пакетом обновления 1

Для отладки Windows Phone требуется USB-подключение (для этого не требуются удаленные инструменты).

Поддерживаемые конфигурации оборудования

Процессор 1,6 ГГц или выше

1 ГБ ОЗУ (1,5 ГБ при работе на виртуальной машине)

1 ГБ свободного места на жестком диске

Жесткий диск со скоростью вращения 5400 об/мин

Видеокарта с поддержкой DirectX 9 и разрешением экрана 1024 x 768 или выше

Конфигурация сети

Удаленный компьютер и компьютер Visual Studio должны быть подключены через сеть, рабочую группу или домашнюю группу либо напрямую через кабель Ethernet. Отладка между двумя компьютерами, подключенными через прокси, не поддерживается. Отладка через соединение с высокой задержкой или низкой пропускной способностью, например коммутируемое подключение к Интернету, или через Интернет в разных странах не рекомендуется и может привести к сбою или неприемлемо медленному выполнению.

(Необязательно) Чтобы запустить удаленный отладчик из общей папки

Вы можете найти удаленный отладчик (msvsmon.exe) на компьютере с уже установленным Visual Studio Community, Professional или Enterprise. В некоторых сценариях самый простой способ настроить удаленную отладку — запустить удаленный отладчик (msvsmon.exe) из общей папки. Ограничения использования см. на странице справки удаленного отладчика (Справка > Использование в удаленном отладчике).

Найдите msvsmon.exe в каталоге, соответствующем вашей версии Visual Studio:

Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe

Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Remote Debugger\x86\msvsmon.exe

Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe

Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x86\msvsmon.exe

Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Remote Debugger\x86\msvsmon.exe

Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe

Общий доступ к папке удаленного отладчика на компьютере Visual Studio.

На удаленном компьютере запустите msvsmon.exe из общей папки. Следуйте инструкциям по настройке.

Информацию об установке из командной строки и справку по командной строке см. на странице справки для msvsmon.exe, введя msvsmon.exe /?в командной строке на компьютере с установленной Visual Studio (или выберите Справка > Использование в удаленном отладчике).

Настройте удаленный отладчик

На удаленном компьютере найдите и запустите удаленный отладчик из меню "Пуск".

Если у вас нет прав администратора на удаленном компьютере, щелкните правой кнопкой мыши приложение Remote Debugger и выберите Запуск от имени администратора. В противном случае просто запустите его в обычном режиме.

Если вы планируете подключиться к процессу, работающему от имени администратора или под другой учетной записью пользователя (например, IIS), щелкните правой кнопкой мыши приложение Remote Debugger и выберите Запуск от имени администратора. Дополнительные сведения см. в разделе Запуск удаленного отладчика от имени администратора.

При первом запуске удаленного отладчика (или до его настройки) появляется диалоговое окно конфигурации удаленной отладки.

Если Windows Web Services API не установлен, что происходит только в Windows Server 2008 R2, нажмите кнопку «Установить».

Выберите хотя бы один тип сети, в которой вы хотите использовать удаленные инструменты. Если компьютеры подключены через домен, необходимо выбрать первый пункт. Если компьютеры подключены через рабочую или домашнюю группу, выберите второй или третий элемент соответственно.

Выберите Настроить удаленную отладку, чтобы настроить брандмауэр и запустить удаленный отладчик.

После завершения настройки появится окно удаленного отладчика.

Удаленный отладчик ожидает подключения. Используйте показанные имя сервера и номер порта, чтобы задать конфигурацию удаленного подключения в Visual Studio.

Чтобы остановить удаленный отладчик, выберите «Файл» > «Выход». Вы можете перезапустить его из меню «Пуск» или из командной строки:

Настройте удаленный отладчик

Вы можете изменить некоторые аспекты конфигурации удаленного отладчика после его первого запуска.

Если вам нужно добавить разрешения для других пользователей на подключение к удаленному отладчику, выберите «Инструменты» > «Разрешения». У вас должны быть права администратора, чтобы предоставлять или запрещать разрешения.

Вы можете запускать удаленный отладчик под учетной записью пользователя, которая отличается от учетной записи пользователя, используемой на компьютере Visual Studio, но вы должны добавить другую учетную запись пользователя в разрешения удаленного отладчика.

Кроме того, вы можете запустить удаленный отладчик из командной строки с параметром /allow: msvsmon /allow .

Если вам нужно изменить режим аутентификации или номер порта или указать значение тайм-аута для удаленных инструментов: выберите «Инструменты» > «Параметры».

Список номеров портов, используемых по умолчанию, см. в разделе Назначение портов удаленного отладчика.

Вы можете запустить удаленные инструменты в режиме без аутентификации, но этот режим настоятельно не рекомендуется. При работе в этом режиме безопасность сети отсутствует. Выбирайте режим «Без аутентификации», только если вы уверены, что сеть не подвержена риску вредоносного или враждебного трафика.

(Необязательно) Настройте удаленный отладчик как службу

Если вы хотите настроить удаленный отладчик как службу, выполните следующие действия.

Найдите мастер настройки удаленного отладчика (rdbgwiz.exe). (Это отдельное приложение от удаленного отладчика.) Оно доступно только при установке удаленных инструментов. Он не устанавливается вместе с Visual Studio.

Запустите мастер настройки. Когда откроется первая страница, нажмите «Далее».

Установите флажок Запускать удаленный отладчик Visual Studio как службу.

Добавьте имя учетной записи пользователя и пароль.

Возможно, вам потребуется добавить к этой учетной записи право «Вход в качестве пользователя службы» (найти локальную политику безопасности (secpol.msc) на начальной странице или в окне (или ввести secpol в командной строке). Когда появится окно, дважды щелкните «Назначение прав пользователя», затем найдите «Вход в качестве службы» на правой панели. Дважды щелкните его. Добавьте учетную запись пользователя в окно «Свойства» и нажмите «ОК»). Нажмите «Далее».

Выберите тип сети, с которой должны связываться удаленные инструменты. Должен быть выбран хотя бы один тип сети. Если компьютеры подключены через домен, следует выбрать первый пункт. Если компьютеры подключены через рабочую или домашнюю группу, следует выбрать второй или третий пункты. Нажмите «Далее».

Если службу можно запустить, вы увидите, что вы успешно завершили работу мастера настройки удаленного отладчика Visual Studio.Если служба не может быть запущена, вы увидите сообщение Не удалось завершить работу мастера настройки удаленного отладчика Visual Studio. На этой странице также приведены некоторые советы по запуску службы.

Нажмите "Готово".

В этот момент удаленный отладчик работает как служба. Вы можете убедиться в этом, перейдя в Панель управления > Службы и найдя Удаленный отладчик Visual Studio.

Вы можете остановить и запустить службу удаленного отладчика, выбрав Панель управления > Службы.

Настроить отладку с удаленными символами

Вы должны иметь возможность отлаживать свой код с помощью символов, созданных на компьютере Visual Studio. Производительность удаленного отладчика намного выше при использовании локальных символов. Если вы должны использовать удаленные символы, вам нужно указать удаленному монитору отладки искать символы на удаленном компьютере.

Начиная с Visual Studio 2013 Update 2, вы можете использовать следующий переключатель командной строки msvsmon для использования удаленных символов для управляемого кода: Msvsmon /FallbackLoadRemoteManagedPdbs

Чтобы отладить приложение Visual Studio на другом компьютере, установите и запустите удаленные инструменты на компьютере, на котором вы будете развертывать приложение, настройте проект для подключения к удаленному компьютеру из Visual Studio, а затем разверните и запустите приложение. .

Сведения об удаленной отладке универсальных приложений Windows (UWP) см. в разделе Отладка установленного пакета приложения.

Требования

Удаленный отладчик поддерживается в Windows 7 и более поздних версиях, а также в версиях Windows Server, начиная с Windows Server 2008 с пакетом обновления 2. Полный список требований см. в разделе Требования.

Отладка между двумя компьютерами, подключенными через прокси-сервер, не поддерживается. Отладка через соединение с высокой задержкой или низкой пропускной способностью, например коммутируемое подключение к Интернету, или через Интернет в разных странах не рекомендуется и может привести к сбою или неприемлемо медленному выполнению.

Загрузить и установить удаленные инструменты

На удаленном устройстве или сервере, на котором вы хотите выполнять отладку, а не на компьютере с Visual Studio, загрузите и установите правильную версию удаленных инструментов по ссылкам в следующей таблице.

  • Загрузите самые последние удаленные инструменты для вашей версии Visual Studio. Последняя версия удаленных инструментов совместима с более ранними версиями Visual Studio, но более ранние версии удаленных инструментов несовместимы с более поздними версиями Visual Studio. (Например, если вы используете Visual Studio 2017, загрузите последнее обновление удаленных инструментов для Visual Studio 2017. В этом случае не загружайте удаленные инструменты для Visual Studio 2019.)
  • Загружайте удаленные инструменты с той же архитектурой, что и машина, на которой вы их устанавливаете. Например, если вы хотите отлаживать 32-разрядное приложение на удаленном компьютере с 64-разрядной операционной системой, установите 64-разрядные удаленные инструменты.
  • Если вы выполняете удаленную отладку приложения ARM64EC на устройстве ARM64, установите удаленные инструменты ARM64, а затем запустите удаленный отладчик x64, который устанавливается вместе с этими инструментами. Его можно найти в папке Program Files (x86)\Microsoft Visual Studio\Common7\IDE\Remote Debugger\x64.

Вы можете запустить удаленный отладчик, скопировав msvsmon.exe на удаленный компьютер, а не устанавливая удаленные инструменты. Однако мастер настройки удаленного отладчика (rdbgwiz.exe) доступен только при установке удаленных инструментов. Вам может понадобиться использовать мастер для настройки, если вы хотите запустить удаленный отладчик как службу. Дополнительные сведения см. в разделе (Необязательно) Настройка удаленного отладчика как службы.

  • Для отладки приложений Windows 10 на устройствах ARM используйте ARM64, доступный в последней версии удаленных инструментов.
  • Для отладки приложений Windows 10 на устройствах Windows RT используйте ARM, который доступен только в загружаемых средствах удаленного доступа Visual Studio 2015.

В некоторых случаях эффективнее запускать удаленный отладчик из общей папки. Дополнительные сведения см. в статье Запуск удаленного отладчика из общей папки.

Настройте удаленный отладчик

На удаленном компьютере найдите и запустите удаленный отладчик из меню "Пуск".

Если у вас нет прав администратора на удаленном компьютере, щелкните правой кнопкой мыши приложение Remote Debugger и выберите Запуск от имени администратора. В противном случае просто запустите его в обычном режиме.

Если вы планируете подключиться к процессу, работающему от имени администратора или под другой учетной записью пользователя (например, IIS), щелкните правой кнопкой мыши приложение Remote Debugger и выберите Запуск от имени администратора. Дополнительные сведения см. в разделе Запуск удаленного отладчика от имени администратора.

При первом запуске удаленного отладчика (или до его настройки) появляется диалоговое окно конфигурации удаленной отладки.

Если Windows Web Services API не установлен, что происходит только в Windows Server 2008 R2, нажмите кнопку «Установить».

Выберите хотя бы один тип сети, в которой вы хотите использовать удаленные инструменты. Если компьютеры подключены через домен, необходимо выбрать первый пункт. Если компьютеры подключены через рабочую или домашнюю группу, выберите второй или третий элемент соответственно.

Выберите Настроить удаленную отладку, чтобы настроить брандмауэр и запустить удаленный отладчик.

После завершения настройки появится окно удаленного отладчика.

Удаленный отладчик ожидает подключения. Используйте показанные имя сервера и номер порта, чтобы задать конфигурацию удаленного подключения в Visual Studio.

Чтобы остановить удаленный отладчик, выберите «Файл» > «Выход». Вы можете перезапустить его из меню «Пуск» или из командной строки:

Если вам нужно добавить разрешения для дополнительных пользователей, изменить режим аутентификации или номер порта для удаленного отладчика, см. раздел Настройка удаленного отладчика.

Удаленная отладка проекта C++

В следующей процедуре имя и путь проекта — C:\remotetemp\MyMfc, а имя удаленного компьютера — MJO-DL.

Создайте приложение MFC с именем mymfc.

Установите легкодоступную точку останова где-нибудь в приложении, например, в MainFrm.cpp, в начале CMainFrame::OnCreate .

В обозревателе решений щелкните проект правой кнопкой мыши и выберите "Свойства". Откройте вкладку "Отладка".

Настройте отладчик для запуска удаленного отладчика Windows.

Внесите следующие изменения в свойства:

Настройка Значение
Удаленная команда C:\remotetemp\mymfc.exe
Рабочий каталог C:\remotetemp
Имя удаленного сервера MJO-DL:номер порта
Соединение Удаленный с проверкой подлинности Windows
Тип отладчика Только собственный
Каталог развертывания C:\remotetemp .
Дополнительные файлы для развертывания C:\data\mymfcdata.txt.

Если вы развертываете дополнительные файлы (необязательно), папка должна существовать на обоих компьютерах.

В обозревателе решений щелкните решение правой кнопкой мыши и выберите Диспетчер конфигураций.

Для конфигурации отладки установите флажок Развернуть.

Начать отладку (Отладка > Начать отладку или F5).

Исполняемый файл автоматически развертывается на удаленном компьютере.

При появлении запроса введите сетевые учетные данные для подключения к удаленному компьютеру.

На компьютере с Visual Studio вы должны увидеть, что выполнение остановлено в точке останова.

Кроме того, вы можете развернуть файлы как отдельный шаг. В обозревателе решений щелкните правой кнопкой мыши узел mymfc и выберите "Развернуть".

Если у вас есть файлы, не являющиеся кодом, которые требуются приложению, вы можете указать их в списке, разделенном точкой с запятой, в разделе Дополнительные файлы для развертывания на странице удаленного отладчика Windows.

Кроме того, вы можете включить файлы в свой проект и задать для свойства Content значение Yes на странице свойств для каждого файла. Эти файлы копируются в каталог развертывания, указанный на странице удаленного отладчика Windows. Вы также можете изменить Тип элемента на Копировать файл и указать там дополнительные свойства, если вам нужно, чтобы файлы копировались во вложенную папку каталога развертывания.

Настройка отладки с помощью удаленных символов

Вы должны иметь возможность отлаживать свой код с помощью символов, созданных на компьютере Visual Studio. Производительность удаленного отладчика намного выше при использовании локальных символов. Если вы должны использовать удаленные символы, вам нужно указать удаленному монитору отладки искать символы на удаленном компьютере.

Начиная с Visual Studio 2013 Update 2, вы можете использовать следующий переключатель командной строки msvsmon для использования удаленных символов для управляемого кода: Msvsmon /FallbackLoadRemoteManagedPdbs

Вы можете подключить отладчик Visual Studio к работающему процессу на локальном или удаленном компьютере. После запуска процесса выберите «Отладка» > «Присоединить к процессу» или нажмите Ctrl+Alt+p в Visual Studio и используйте диалоговое окно «Присоединить к процессу», чтобы присоединить отладчик к процессу.

Вы можете использовать Присоединение к процессу для отладки запущенных приложений на локальных или удаленных компьютерах, одновременной отладки нескольких процессов, отладки приложений, которые не были созданы в Visual Studio, или отладки любого приложения, которое вы не запускали из Visual Studio с помощью отладчика. прикрепил. Например, если вы запускаете приложение без отладчика и сталкиваетесь с исключением, вы можете подключить отладчик к процессу, в котором запущено приложение, и начать отладку.

Не уверены, следует ли использовать Присоединение к процессу для вашего сценария отладки? См. Общие сценарии отладки.

Присоединиться к запущенному процессу на вашем локальном компьютере

Чтобы быстро повторно подключиться к процессу, к которому вы ранее присоединялись, см. раздел Повторное подключение к процессу.

Чтобы присоединиться к процессу на локальном компьютере:

В Visual Studio выберите Отладка > Присоединить к процессу (или нажмите Ctrl+Alt+P), чтобы открыть диалоговое окно Присоединить к процессу.

Проверьте тип подключения.

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

Задайте в качестве цели подключения имя вашего локального компьютера.

В списке Доступные процессы найдите и выберите процесс или процессы, к которым вы хотите подключиться.

Чтобы быстро выбрать процесс, введите его имя или первую букву в поле Фильтровать процессы.

Если вы не знаете имя процесса, просмотрите список или см. Общие сценарии отладки для некоторых распространенных имен процессов.

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

Убедитесь, что в поле Присоединить к указан тип кода, который вы планируете отлаживать. Параметр «Автоматически» по умолчанию подходит для большинства типов приложений.

Если вы используете тип подключения по умолчанию, вы можете вручную выбрать тип кода, к которому хотите подключиться. В противном случае параметр Выбрать может быть отключен.

Чтобы выбрать типы кодов вручную:

  1. Нажмите "Выбрать".
  2. В диалоговом окне "Выбор типа кода" выберите "Отладить эти типы кода". Если вы столкнулись с ошибкой при попытке присоединения к процессу в списке, вы можете использовать диалоговое окно "Выбор типа кода", чтобы устранить проблему.
  3. Выберите типы кода для отладки.
  4. Нажмите "ОК".

Выберите Прикрепить.

Если у вас есть несколько идентичных процессов, используйте столбец командной строки или сведения о процессе w3wp из столбца название, чтобы определить правильный процесс.

Вы можете подключиться к нескольким приложениям для отладки, но в каждый момент времени в отладчике активно только одно приложение. Вы можете указать активное приложение на панели инструментов «Место отладки» Visual Studio или в окне «Процессы».

Присоединиться к процессу на удаленном компьютере

Вы также можете выбрать удаленный компьютер в диалоговом окне "Присоединиться к процессу", просмотреть список доступных процессов, запущенных на этом компьютере, и подключиться к одному или нескольким процессам для отладки. Удаленный отладчик (msvsmon.exe) должен быть запущен на удаленном компьютере. Дополнительные сведения см. в разделе Удаленная отладка.

Чтобы подключиться к запущенному процессу на удаленном компьютере:

В Visual Studio выберите Отладка > Присоединить к процессу (или нажмите Ctrl+Alt+P), чтобы открыть диалоговое окно Присоединить к процессу.

Проверьте тип подключения.

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

В поле Цель подключения выберите удаленный компьютер одним из следующих способов:

Нажмите стрелку раскрывающегося списка рядом с Целью подключения и выберите имя компьютера в раскрывающемся списке.

Введите имя компьютера в поле Цель подключения и нажмите Enter.

Убедитесь, что Visual Studio добавляет требуемый порт к имени компьютера, которое отображается в формате: :port

Если не удается подключиться с использованием имени удаленного компьютера, попробуйте использовать IP-адрес и адрес порта (например, 123.45.678.9:4022 ). 4026 — это порт по умолчанию для удаленного отладчика Visual Studio 2022. Другие назначения портов удаленного отладчика см. в разделе Назначение портов удаленного отладчика.

Если не удается подключиться с использованием имени удаленного компьютера, попробуйте использовать IP-адрес и адрес порта (например, 123.45.678.9:4022 ). 4024 — это порт по умолчанию для удаленного отладчика Visual Studio 2019. Другие назначения портов удаленного отладчика см. в разделе Назначение портов удаленного отладчика.

Если не удается подключиться с использованием имени удаленного компьютера, попробуйте использовать IP-адрес и адрес порта (например, 123.45.678.9:4022 ). 4022 — это порт по умолчанию для удаленного отладчика Visual Studio 2017. Другие назначения портов удаленного отладчика см. в разделе Назначение портов удаленного отладчика.

Нажмите кнопку «Найти» рядом с полем «Цель подключения», чтобы открыть диалоговое окно «Удаленные подключения». В диалоговом окне «Удаленные подключения» перечислены все устройства, которые находятся в вашей локальной подсети или напрямую подключены к вашему компьютеру. Возможно, вам потребуется открыть UDP-порт 3702 на сервере для обнаружения удаленных устройств. Выберите нужный компьютер или устройство и нажмите «Выбрать».

Настройка типа подключения сохраняется между сеансами отладки. Параметр "Цель соединения" сохраняется между сеансами отладки, только если с этой целью установлено успешное соединение для отладки.

Нажмите «Обновить», чтобы заполнить список «Доступные процессы».

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

В списке Доступные процессы найдите и выберите процесс или процессы, к которым вы хотите подключиться.

Чтобы быстро выбрать процесс, введите его имя или первую букву в поле Фильтровать процессы.

Если вы не знаете имя процесса, просмотрите список или см. Общие сценарии отладки для некоторых распространенных имен процессов.

Чтобы найти процессы, запущенные под всеми учетными записями пользователей, установите флажок Показать процессы всех пользователей.

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

Убедитесь, что в поле Присоединить к указан тип кода, который вы планируете отлаживать. Параметр «Автоматически» по умолчанию подходит для большинства типов приложений.

Если вы используете тип подключения по умолчанию, вы можете вручную выбрать тип кода, к которому хотите подключиться. В противном случае параметр Выбрать может быть отключен.

Чтобы выбрать типы кодов вручную:

  1. Нажмите "Выбрать".
  2. В диалоговом окне "Выбор типа кода" выберите "Отладить эти типы кода". Если вы столкнулись с ошибкой при попытке присоединения к процессу в списке, вы можете использовать диалоговое окно "Выбор типа кода", чтобы устранить проблему.
  3. Нажмите "ОК".

Выберите Прикрепить.

Вы можете подключиться к нескольким приложениям для отладки, но в каждый момент времени в отладчике активно только одно приложение. Вы можете указать активное приложение на панели инструментов «Место отладки» Visual Studio или в окне «Процессы».

В некоторых случаях при отладке в сеансе удаленного рабочего стола (службы терминалов) в списке доступных процессов не будут отображаться все доступные процессы. Если вы используете Visual Studio от имени пользователя с ограниченной учетной записью, в списке Доступные процессы не будут отображаться процессы, запущенные в сеансе 0. Сеанс 0 используется для служб и других серверных процессов, включая w3wp.exe. . Вы можете решить эту проблему, запустив Visual Studio под учетной записью администратора или запустив Visual Studio из консоли сервера вместо сеанса служб терминалов.

Если ни один из этих обходных путей невозможен, третий вариант — подключиться к процессу, запустив vsjitdebugger.exe -p

из командной строки Windows. Вы можете определить идентификатор процесса с помощью tlist.exe. Чтобы получить файл tlist.exe, загрузите и установите средства отладки для Windows, доступные для загрузки с помощью WDK и WinDbg.

Если вы публикуете в Службе приложений Azure (Windows), инструкции см. в разделе Отладка служб приложений Azure.

Если вы публикуете в Службе приложений Azure (Windows), вы найдете параметр Присоединить отладчик в разделе . меню в разделе Хостинг в профиле публикации. Visual Studio пытается подключить удаленный отладчик к экземпляру службы приложений Azure (Windows), в котором публикуется профиль.

Присоединиться к процессу, работающему в контейнере Docker

Повторно подключить к процессу

Вы можете быстро повторно подключиться к процессам, к которым вы ранее были подключены, выбрав «Отладка» > «Повторно подключить к процессу» (Shift+Alt+P). Когда вы выберете эту команду, отладчик немедленно попытается подключиться к последним процессам, к которым вы присоединились, сначала пытаясь сопоставить идентификатор предыдущего процесса, а если это не удается, сопоставив имя предыдущего процесса. Если совпадений не найдено или несколько процессов имеют одинаковое имя, откроется диалоговое окно «Присоединить к процессу», в котором можно выбрать правильный процесс.

Команда Reattach to Process доступна, начиная с Visual Studio 2017.

Распространенные сценарии отладки

Чтобы помочь вам определить, следует ли использовать присоединение к процессу и к какому процессу присоединяться, в следующей таблице показано несколько распространенных сценариев отладки со ссылками на дополнительные инструкции, где они доступны. (Список не является исчерпывающим.)

Для некоторых типов приложений, таких как приложения универсального приложения для Windows (UWP), вы не привязываетесь напрямую к имени процесса, а вместо этого используете параметр меню «Отладка установленного пакета приложения» в Visual Studio (см. таблицу).

Чтобы отладчик мог подключиться к коду, написанному на C++, код должен выдать DebuggableAttribute . Вы можете добавить это в свой код автоматически, связав с параметром компоновщика /ASSEMBLYDEBUG.

Для отладки скриптов на стороне клиента отладка скриптов должна быть включена в браузере. Для отладки скрипта на стороне клиента в Chrome выберите JavaScript (Chrome) или JavaScript (Microsoft Edge — Chromium) в качестве типа кода, и в зависимости от типа вашего приложения вам может потребоваться закрыть все экземпляры Chrome и запустить браузер в режиме отладки ( введите chrome.exe --remote-debugging-port=9222 из командной строки). В более ранних версиях Visual Studio отладчиком сценариев для Chrome был веб-комплект.

Чтобы быстро выбрать запущенный процесс для подключения, в Visual Studio нажмите Ctrl+Alt+P, а затем введите первую букву имени процесса.

Использовать функции отладчика

Чтобы использовать все функции отладчика Visual Studio (например, выполнение точек останова) при подключении к процессу, приложение должно точно соответствовать вашему локальному источнику и символам. То есть отладчик должен иметь возможность загружать правильные файлы символов (.pdb). По умолчанию для этого требуется отладочная сборка.

Для сценариев удаленной отладки необходимо, чтобы исходный код (или копия исходного кода) уже был открыт в Visual Studio. Скомпилированные двоичные файлы приложения на удаленном компьютере должны исходить из той же сборки, что и на локальном компьютере.

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

Устранение ошибок прикрепления файлов

В некоторых случаях отладчику может потребоваться помощь, чтобы правильно определить тип отлаживаемого кода. Если значения соединения установлены правильно (правильный процесс можно посмотреть в списке Доступные процессы), но отладчик не подключается, попробуйте выбрать в списке Тип соединения наиболее подходящий тип соединения, который может потребоваться, например, если вы отлаживаете приложение Linux или Python. Если вы используете тип подключения по умолчанию, вы также можете выбрать конкретный тип кода для подключения, как описано далее в этом разделе.

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

Иногда отладчик может успешно подключиться к одному типу кода, но не к другому типу кода. Обычно это происходит, когда:

  • Вы пытаетесь подключиться к процессу, работающему на удаленном компьютере. На удаленном компьютере могут быть установлены компоненты удаленной отладки для одних типов кода, но не для других.
  • Вы пытаетесь подключиться к двум или более процессам для непосредственной отладки базы данных. Отладка SQL поддерживает подключение только к одному процессу.

Если отладчик может подключиться к некоторым, но не ко всем типам кода, вы увидите сообщение, указывающее, какие типы не удалось подключить.

Если отладчик успешно подключился хотя бы к одному типу кода, вы можете приступить к отладке процесса. Вы сможете отлаживать только те типы кода, которые были успешно присоединены. Неприсоединенный код в процессе по-прежнему будет выполняться, но вы не сможете устанавливать точки останова, просматривать данные или выполнять другие операции отладки над этим кодом.

Если вам нужна более подробная информация о том, почему отладчику не удалось подключиться к типу кода, попробуйте повторно подключиться только к этому типу кода.

Чтобы получить конкретную информацию о том, почему не удалось прикрепить тип кода, выполните следующие действия:

Отключиться от процесса. В меню "Отладка" выберите "Отсоединить все".

Повторно подключитесь к процессу, выбрав только тот тип кода, который не удалось подключить.

В диалоговом окне "Присоединиться к процессу" выберите процесс в списке "Доступные процессы".

Нажмите "Выбрать".

В диалоговом окне "Выбор типа кода" выберите "Отладить эти типы кода" и тип кода, который не удалось подключить. Отмените выбор других типов кода.

Выберите ОК.

В диалоговом окне "Присоединиться к процессу" выберите "Присоединить".

На этот раз присоединение завершится ошибкой, и вы получите конкретное сообщение об ошибке.

Читайте также: