Удаленная отладка visual studio 2019
У нас в TestMace Visual Studio Code является одним из самых популярных инструментов. И тем более отрадно, что он развивается семимильными шагами. Вашему вниманию предлагается перевод статьи об еще одной вкусной фиче, которая доступна пока только в VS Code Insiders.
Согласен, немного переборщил с заголовком, просто меня переполняют эмоции. Я решил поделиться своими первыми впечатлениями от удалённой разработки в VS Code, на момент написания статьи доступной в VS Code Insiders.
Возможность удалённой разработки в Visual Studio Code — это возможность использовать контейнер, удалённый компьютер или подсистему Windows для Linux (WSL) в качестве полноценной среды разработки. При этом весь процесс разбивается на две части: клиентская часть приложения запускается на локальном компьютере, а сервер VS Code практически где угодно. Комплект расширений для удалённой разработки включает в себя три расширения. Следующие три статьи помогут изучить каждое из них более детально:
-
— получение доступа к любой директории на удалённой или виртуальной машине с помощью SSH. — работа с изолированным набором инструментальных средств или контейнерезированными приложениями внутри контейнера (или подмонированными в контейнер). — разработка приложений в подсистеме Windows для Linux (WSL).
Приведу конкретный пример. Допустим, необходимо разработать приложение на каком-либо языке, но на вашем компьютере нет ни самого языка, ни SDK, ни нужных инструментов.
Многие разработчики, пишущие под Windows, создают виртуальные машины Windows в облаке, а затем подключаются к рабочему столу по RDP и рулят виндовыми окошками. При этом виртуальная машина выполняет все сопутствующие операции. Разработчики, пишущие под Linux, создают виртуальные машины Linux или контейнеры и подключаются к ним по SSH через терминал, запускают vim или tmux и строчат в консоль. При этом виртуальная машина выполняет все сопутствующие операции. В обоих сценариях реализуется не клиент-серверное соединение, а взаимодействие терминала или тонкого клиента с сервером. VS Code — толстый клиент с чётким и понятным интерфейсом языковых служб и прозрачностью местоположения.
Когда вы пишете код — например, экземпляр объекта, и после символа точки (.) у вас срабатывает автодополнение названий содержимого этого объекта. Кто выполняет эту работу? Откуда берётся этот список? Если код запускается локально, да ещё и в контейнере, необходимо убедиться, что обе стороны (клиент и сервер) синхронизированы, используют один и тот же SDK и тому подобное. Непростая задача.
Допустим, на вашем компьютере не установлен Rust и необходимые для разработки инструменты.
Тогда производим клонирование следующего репозитория:
Запускаем VS Code Insiders:
Затем VS Code интересуется, хотите ли вы открыть данный контейнер.
В файле devcontainer.json содержится список расширений, необходимых для текущего проекта. Расширения VS Code будут установлены в контейнер Docker, а затем их можно будет использовать удалённо. Ваша локальная система вовсе не нуждается во всех них, достаточно установить только те, которые вы планируете использовать в текущем проекте. Конечно, можно обойтись вообще без установки чего-либо на свой локальный компьютер, но золотая середина в том, чтобы избавиться от излишнего ручного конфигурирования системы.
Посмотрите на скриншот ниже. Здесь необходимые вам инструментальные средства добавляются в файл dockerfile, запускается исполняемый файл Docker, и мы видим сервер VS Code!
Зайдите в раздел Extensions в VS Code и обратите внимание на левый нижний угол. Зелёная строка состояния сигнализирует о том, что реализовано клиент-серверное взаимодействие. Все нужные расширения Rust установлены в контейнер и готовы к использованию в VS Code. Весь процесс установки занял считанные минуты.
Редактируя код таким способом, вы получаете те же функции автодополнения, отладки и прочее.
Вот пример сеанса отладки приложения на Rust в режиме реального времени, не требующего никакой настройки, кроме установки VS Code Insiders, Remote Extensions, и Docker (который у меня уже был).
Как я уже говорил, вы можете запускать код с помощью WSL, в контейнерах или через SSH. Такой стиль разработки только набирает обороты. Он прост и понятен, и мне очень интересно понаблюдать, куда это нас приведёт. Нам приходится выполнять так много рутинных задач, а удалённое редактирование кода позволяет выкинуть из процесса разработки всё лишнее, и сконцентрировать своё внимание на самом главном.
Чтобы выполнить отладку приложения Visual Studio на другом компьютере, установите и запустите средства удаленной отладки на том компьютере, где будет развернуто приложение, затем настройте в проекте подключение к удаленному компьютеру из Visual Studio и наконец разверните и запустите приложение.
Сведения об удаленной отладке приложений UWP (универсальной платформы Windows) вы найдете в статье Отладка установленного пакета приложения.
Требования
Удаленный отладчик поддерживается в среде Windows 7 и более поздних версий, а также в Windows Server, начиная с версии Windows Server 2008 с пакетом обновления 2 (SP2). Полный список требований см. в разделе Требования.
Отладка между двумя компьютерами, подключенными через прокси-сервер, не поддерживается. Отладка через подключение с высокой задержкой или низкой пропускной способностью, например при подключении к Интернету по коммутируемой линии или при размещении компьютеров в разных странах, может приводить к сбоям или работать недопустимо медленно и поэтому не рекомендуется.
Скачивание и установка инструментов удаленной отладки
На удаленном устройстве или сервере, на котором требуется выполнить отладку (не на компьютере Visual Studio), скачайте и установите правильную версию инструментов удаленной отладки по ссылкам, приведенным в следующей таблице.
- Скачайте последние версии инструментов удаленной отладки для вашей версии Visual Studio. Последняя версия инструментов удаленной отладки совместима с более ранними версиями Visual Studio, но более ранние версии инструментов удаленной отладки несовместимы с более поздними версиями Visual Studio. (Например, если вы используете Visual Studio 2017, скачайте последнее обновление инструментов удаленной отладки для Visual Studio 2017. В этом случае не следует скачивать средства удаленной отладки для Visual Studio 2019.)
- Скачивайте средства удаленной отладки с архитектурой, соответствующей архитектуре компьютера, на котором они будут устанавливаться. Например, если вы хотите отлаживать 32-разрядное приложение на удаленном компьютере под управлением 64-разрядной операционной системы, установите 64-разрядные инструменты удаленной отладки.
- Если вы выполняете удаленную отладку приложения ARM64EC на устройстве ARM64, установите инструменты удаленной отладки ARM64, а затем запустите удаленный отладчик 64-разрядной версии, который устанавливается вместе с этими инструментами. Его можно найти в папке Program Files (x86)\Microsoft Visual Studio<version>\Common7\IDE\Remote Debugger\x64.
Чтобы запустить удаленный отладчик, можно не устанавливать инструменты удаленной отладки, а просто скопировать файл msvsmon.exe на удаленный компьютер. Однако мастер настройки удаленного отладчика (rdbgwiz.exe) доступен только после установки инструментов удаленной отладки. Этот мастер может потребоваться для настройки, если вы захотите запускать удаленный отладчик как службу. Дополнительные сведения см. в разделе (Дополнительно) Настройка удаленного отладчика как службы.
- Для отладки приложений Windows 10 на устройствах ARM используйте ARM64, доступный с последней версией инструментов удаленной отладки.
- Для отладки приложений Windows 10 на устройствах Windows RT используйте ARM, доступный только при загрузке инструментов удаленной отладки Visual Studio 2015.
В некоторых сценариях запуск удаленного отладчика из общей папки может оказаться самым эффективным решением. Дополнительные сведения см. в разделе Запуск удаленного отладчика из общей папки.
Установка удаленного отладчика
На удаленном компьютере найдите Удаленный отладчик в меню Пуск и запустите его.
Если у вас нет прав администратора на удаленном компьютере, щелкните правой кнопкой мыши приложение Удаленный отладчик и выберите Запуск от имени администратора. В противном случае просто запустите его, как обычно.
Если вы планируете присоединиться к процессу, который работает от имени администратора или под другой учетной записью пользователя (например, IIS), щелкните правой кнопкой мыши приложение Удаленный отладчик и выберите пункт Запуск от имени администратора. Дополнительные сведения см. в разделе Запуск удаленного отладчика в качестве администратора.
При первом запуске удаленного отладчика (или перед его настройкой) появится диалоговое окно Конфигурация удаленной отладки.
Если API-интерфейс веб-служб Windows не установлен (это возможно только в 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:portnumber |
Подключение | Удаленный доступ с аутентификацией Windows |
Тип отладчика | Только машинный код |
Каталог развертывания | C:\remotetemp. |
Дополнительные файлы развертывания | C:\data\mymfcdata.txt. |
Если требуется развернуть дополнительные файлы (необязательно), соответствующая папка должна существовать на обоих компьютерах.
В обозревателе решений щелкните решение правой кнопкой мыши и выберите Диспетчер конфигураций.
Для конфигурации Отладка установите флажок Развертывание.
Начните отладку (выберите Отладка > Начать отладку или нажмите клавишу F5).
Исполняемый файл автоматически развернется на удаленном компьютере.
Если появится запрос на подключение к удаленному компьютеру, введите сетевые учетные данные.
На компьютере с Visual Studio вы должны увидеть, что выполнение остановилось в точке останова.
Кроме того, файлы можно развернуть как отдельный шаг. В обозревателе решений щелкните правой кнопкой мыши узел mymfc и выберите пункт Развернуть.
Если приложению требуются дополнительные файлы, не содержащие код, их можно указать в виде списка файлов, разделенных точками с запятой, в параметре Дополнительные файлы развертывания на странице Удаленный отладчик Windows.
Вместо этого вы можете включить такие файлы в проект и задать для свойства Содержимое значение Да на странице Свойства для каждого файла. Это приведет к тому, что файлы будут скопированы в Каталог развертывания, указанный на странице Удаленный отладчик Windows. Можно также изменить Тип элемента, указав значение Копировать файл, и дополнительные свойства, если файлы нужно копировать во вложенную папку в каталоге развертывания.
Настройка отладки с удаленными символами
Вы можете отлаживать код с использованием символов, созданных на компьютере Visual Studio. Производительность удаленного отладчика гораздо выше при использовании локальных символов. Если необходимо использовать удаленные символы, укажите, что монитор удаленной отладки должен искать символы на удаленном компьютере.
Начиная с версии Visual Studio 2013 с обновлением 2 можно использовать следующий параметр командной строки msvsmon для использования удаленных символов для управляемого кода: Msvsmon /FallbackLoadRemoteManagedPdbs
Вы можете отладить приложение 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.
Требования
Supported Operating Systems
Удаленный компьютер должен работать под управлением одной из следующих операционных систем:
Windows 10 (не телефон)
Windows 8 или 8.1 (не телефон)
Windows 7 с пакетом обновления 1 (SP1)
Windows Server 2016
Windows Server 2012 или Windows Server 2012 R2
Windows Server 2008 с пакетом обновления 2 (SP2), Windows Server 2008 R2 с пакетом обновления 1 (SP1)
Для отладки Windows Phone требуется USB-подключение (инструменты удаленной отладки не требуются).
Поддерживаемые конфигурации оборудования
Процессор с тактовой частотой 1,6 ГГц или большей
1 ГБ ОЗУ (1,5 ГБ при выполнении в виртуальной машине)
1 ГБ доступного пространства на жестком диске
Жесткий диск 5400 об/мин
Видеоадаптер с поддержкой DirectX 9 и разрешением экрана 1024x768 или выше
Конфигурация сети
Удаленный компьютер и компьютер 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 (или перейдите в раздел Справка > Использование в удаленном отладчике).
Установка удаленного отладчика
На удаленном компьютере найдите Удаленный отладчик в меню Пуск и запустите его.
Если у вас нет прав администратора на удаленном компьютере, щелкните правой кнопкой мыши приложение Удаленный отладчик и выберите Запуск от имени администратора. В противном случае просто запустите его, как обычно.
Если вы планируете присоединиться к процессу, который работает от имени администратора или под другой учетной записью пользователя (например, IIS), щелкните правой кнопкой мыши приложение Удаленный отладчик и выберите пункт Запуск от имени администратора. Дополнительные сведения см. в разделе Запуск удаленного отладчика в качестве администратора.
При первом запуске удаленного отладчика (или перед его настройкой) появится диалоговое окно Конфигурация удаленной отладки.
Если API-интерфейс веб-служб Windows не установлен (это возможно только в Windows Server 2008 R2), нажмите кнопку Установить.
Выберите хотя бы один тип сетей, для которых вы намерены использовать инструменты удаленной отладки. Если компьютеры соединены через домен, необходимо выбрать первый пункт. Если компьютеры соединены через рабочую или домашнюю группу, выберите второй или третий пункт соответственно.
Щелкните Настроить удаленную отладку, чтобы настроить брандмауэр и запустить удаленный отладчик.
По завершении настройки появится окно Удаленный отладчик.
Теперь удаленный отладчик ожидает подключения. Введите предложенные имя сервера и номер порта, чтобы настроить конфигурацию удаленного подключения в Visual Studio.
Чтобы прекратить работу удаленного отладчика, щелкните Файл > Выход. Его можно снова запустить из меню Пуск или из командной строки:
Настройка удаленного отладчика
После первого запуска удаленного отладчика можно изменить некоторые аспекты его конфигурации.
Если нужно добавить разрешения на подключение к удаленному отладчику для других пользователей, выберите Инструменты > Разрешения. Для предоставления разрешений или отказа в предоставлении необходимо обладать правами администратора.
Вы можете запускать удаленный отладчик в учетной записи пользователя, отличной от используемой на компьютере Visual Studio, но эту учетную запись нужно добавить в список разрешений удаленного отладчика.
Кроме того, удаленный отладчик можно запускать из командной строки с помощью параметра /allow <username> : msvsmon /allow <username@computer> .
Чтобы изменить режим аутентификации или номер порта либо задать значение времени ожидания для инструментов удаленной отладки, выберите Инструменты > Параметры.
Список номеров портов, используемых по умолчанию, см. в разделе Назначения портов удаленного отладчика.
Вы можете запускать инструменты удаленной отладки в режиме "без аутентификации", однако настоятельно рекомендуется не использовать этот режим. При работе в этом режиме сетевая безопасность не обеспечивается. Режим без аутентификации можно выбрать, только если вы уверены в отсутствии вредоносного или опасного трафика.
(Дополнительно) Настройка удаленного отладчика как службы
Чтобы настроить удаленный отладчик как службу, выполните следующие действия.
Найдите мастер настройки удаленного отладчика (rdbgwiz.exe). (Это отдельное приложение, не входящее в состав удаленного отладчика.) Он доступен только в том случае, если вы установили инструменты удаленной отладки. Вместе с Visual Studio он не устанавливается.
Запустите мастер настройки. Когда появится первая страница, нажмите кнопку Далее.
Установите флажок Запускать удаленный отладчик Visual Studio 2015 как службу .
Добавьте имя учетной записи пользователя и пароль.
Теперь удаленный отладчик должен работать как служба. Чтобы проверить, так ли это, выберите Панель управления > Службы и найдите службу Удаленный отладчик Visual Studio 2015.
Останавливать и запускать службу удаленного отладчика можно с помощью компонента Панель управления > Службы.
Настройка отладки с использованием удаленных символов
Вы можете отлаживать код с использованием символов, созданных на компьютере Visual Studio. Производительность удаленного отладчика гораздо выше при использовании локальных символов. Если необходимо использовать удаленные символы, укажите, что монитор удаленной отладки должен искать символы на удаленном компьютере.
Начиная с версии Visual Studio 2013 с обновлением 2 можно использовать следующий параметр командной строки msvsmon для использования удаленных символов для управляемого кода: Msvsmon /FallbackLoadRemoteManagedPdbs
Присоединение к выполняемым процессам с использованием отладчика Visual Studio
Отладчик Visual Studio можно подключить к запущенному процессу на локальном или удаленном компьютере. После выполнения процесса выберите Отладка > Подключить к процессу или нажмите клавиши CTRL+ALT+P в Visual Studio и используйте диалоговое окно Подключение к процессу, чтобы подключить отладчик к процессу.
Параметр Подключить к процессу можно использовать для отладки запущенных приложений на локальных или удаленных компьютерах, одновременной отладки нескольких процессов, отладки приложений, которые не были созданы в Visual Studio, или отладки любого приложения, которое не было запущено из Visual Studio с прикрепленным отладчиком. Например, если вы используете приложение без отладчика и столкнулись с исключением, можно присоединить отладчик к процессу, в котором выполняется приложение, и начать отладку.
[!TIP] Не уверены, следует ли использовать параметр Подключить к процессу для сценария отладки? См. раздел Общие сценарии отладки.
Присоединение к выполняющемуся процессу на локальном компьютере
Сведения о том, как быстро присоединиться к процессу, подключенному ранее, см. в разделе Повторное подключение к процессу.
Порядок присоединения к процессу на локальном компьютере
В Visual Studio выберите Отладка > Подключить к процессу (или нажмите клавиши CTRL+ALT+P), чтобы открыть диалоговое окно Подключение к процессу.
Проверьте значение параметра Тип подключения.
В большинстве случаев можно использовать значение По умолчанию. Для некоторых сценариев может потребоваться другой тип подключения. Дополнительные сведения см. в других разделах этой статьи, а также в разделе Общие сценарии отладки.
В поле Цель подключения укажите имя локального компьютера.
В списке Доступные процессы найдите и выберите процессы, к которым нужно присоединиться.
Чтобы быстро выбрать процесс, введите его имя или первую букву в поле Фильтр процессов.
Если вы не знаете имя процесса, просмотрите список или обратитесь к разделу Общие сценарии отладки, чтобы ознакомиться с некоторыми распространенными именами процессов.
[!TIP] Процессы могут запускаться и останавливаться в фоновом режиме, пока диалоговое окно Подключение к процессу открыто, поэтому список запущенных процессов может не всегда быть актуальным. Чтобы просмотреть актуальный список, можно в любое время нажать кнопку Обновить.
Убедитесь, что в окне Присоединиться к указан тип кода, который планируется отладить. Для большинства типов приложений можно выбрать значение по умолчанию Автоматически.
При использовании типа подключения По умолчанию можно вручную выбрать тип кода, к которому нужно подключиться. В противном случае кнопка Выбрать может быть неактивна.
Выбор кода вручную
Выберите Подключить.
. moniker range=">= vs-2022"
[!TIP] В сценарии с несколькими идентичными процессами вы можете указать процесс с использованием столбца командной строки или сведений о процессе w3wp из столбца заголовка. . moniker-end
[!NOTE] Во время отладки можно подключиться к нескольким приложениям, но в любой момент времени только один из них активен в отладчике. Можно выбрать текущую программу в панели инструментов Место отладки или окне Процессы в Visual Studio.
Присоединение к процессу на удаленном компьютере
В диалоговом окне Подключение к процессу также можно выбрать удаленный компьютер, просмотреть список доступных процессов, запущенных на этом компьютере, и подключиться к одному или нескольким процессам для отладки. На удаленном компьютере должен выполняться удаленный отладчик (msvsmon.exe). Дополнительные сведения см. в статье Удаленная отладка.
Присоединение к выполняющемуся процессу на удаленном компьютере
В Visual Studio выберите Отладка > Подключить к процессу (или нажмите клавиши CTRL+ALT+P), чтобы открыть диалоговое окно Подключение к процессу.
Проверьте значение параметра Тип подключения.
В большинстве случаев можно использовать значение По умолчанию. В некоторых сценариях, таких как отладка Linux или контейнерного приложения, требуется другой тип подключения. Дополнительные сведения см. в других разделах этой статьи, а также в разделе Общие сценарии отладки.
В поле Целевой объект подключения выберите удаленный компьютер одним из следующих способов.
Щелкните стрелку раскрывающегося списка Целевой объект подключения и выберите из раскрывающегося списка имя компьютера.
Введите имя компьютера в поле Целевой объект подключения и нажмите клавишу ВВОД.
Убедитесь, что Visual Studio добавляет требуемый порт в имя компьютера, которое отображается в формате <remote computer name>:порт.
. moniker range=">= vs-2022"
[!NOTE] Если вы не можете подключиться с помощью имени удаленного компьютера, попробуйте использовать IP-адрес и порт (например, 123.45.678.9:4022 ). 4026 — это порт по умолчанию для удаленного отладчика Visual Studio 2022. Сведения о других назначениях портов удаленного отладчика см. в разделе Назначение портов удаленного отладчика.
. moniker-end . moniker range="vs-2019"
[!NOTE] Если вы не можете подключиться с помощью имени удаленного компьютера, попробуйте использовать IP-адрес и порт (например, 123.45.678.9:4022 ). 4024 — это порт по умолчанию для удаленного отладчика Visual Studio 2019. Сведения о других назначениях портов удаленного отладчика см. в разделе Назначение портов удаленного отладчика.
. moniker-end . moniker range="vs-2017"
[!NOTE] Если вы не можете подключиться с помощью имени удаленного компьютера, попробуйте использовать IP-адрес и порт (например, 123.45.678.9:4022 ). 4022 — это порт по умолчанию для удаленного отладчика Visual Studio 2017. Сведения о других назначениях портов удаленного отладчика см. в разделе Назначение портов удаленного отладчика.
[!NOTE] Значение параметра Тип подключения сохраняется между сеансами отладки. Параметр Целевой объект подключения хранится между сеансами отладки только в случае успешного подключения отладки с этим целевым объектом.
[!TIP] Процессы могут запускаться и останавливаться в фоновом режиме, пока диалоговое окно Подключение к процессу открыто, поэтому список запущенных процессов может не всегда быть актуальным. Чтобы просмотреть актуальный список, можно в любое время нажать кнопку Обновить.
В списке Доступные процессы найдите и выберите процессы, к которым нужно присоединиться.
Чтобы быстро выбрать процесс, введите его имя или первую букву в поле Фильтр процессов.
Если вы не знаете имя процесса, просмотрите список или обратитесь к разделу Общие сценарии отладки, чтобы ознакомиться с некоторыми распространенными именами процессов.
Чтобы найти процесс, который выполняется с другой учетной записью пользователя, установите флажок Показать процессы всех пользователей.
Убедитесь, что в окне Присоединиться к указан тип кода, который планируется отладить. Для большинства типов приложений можно выбрать значение по умолчанию Автоматически.
При использовании типа подключения По умолчанию можно вручную выбрать тип кода, к которому нужно подключиться. В противном случае кнопка Выбрать может быть неактивна.
Выбор кода вручную
Выберите Подключить.
[!NOTE] Во время отладки можно подключиться к нескольким приложениям, но в любой момент времени только один из них активен в отладчике. Можно выбрать текущую программу в панели инструментов Место отладки или окне Процессы в Visual Studio.
В некоторых случаях при отладке в сеансе удаленного рабочего стола (службы терминалов) в списке Доступные процессы не отображаются все доступные процессы. При работе с Visual Studio в качестве пользователя с ограниченным доступом в списке Доступные процессы не будут отображаться процессы, запущенные в сеансе 0, который используется для служб и других серверных процессов, включая w3wp.exe. Можно устранить эту проблему, запустив [!INCLUDEvsprvs] под учетной записью администратора или запустив [!INCLUDEvsprvs] с консоли сервера вместо сеанса служб терминалов.
Если ни один из этих обходных путей использовать невозможно, третий вариант — присоединение к процессу путем запуска vsjitdebugger.exe -p <ProcessId> из командной строки Windows. Можно определить идентификатор процесса с помощью tlist.exe. Чтобы получить файл tlist.exe, скачайте и установите средства отладки для Windows, которые доступны на странице скачиваемых файлов WDK и WinDbg.
Если вы выполняете публикацию в Службе приложений Azure (Windows), параметр Подключить отладчик можно найти в меню . в разделе Размещение. Visual Studio пытается подключить удаленный отладчик к экземпляру Службы приложений Azure (Windows), в котором публикуется профиль.
. image type="content" source="../debugger/media/attach-debugger-publish-profile.jpg" alt-text="Снимок экрана: параметр "Подключить отладчик" на странице сводки публикации".
. moniker range=">= vs-2019"
Присоединение к процессу, выполняющемуся в контейнере Docker
Повторное подключение к процессу
Чтобы быстро присоединиться к процессам, к которым вы ранее были присоединены, выберите Отладка > Повторно подключиться к процессу (SHIFT+ALT+P). При выборе этой команды отладчик сразу же попытается присоединиться к последним процессам, к которым вы подключались, сначала попытавшись выполнить сопоставление с ИД предыдущего процесса, а если это не удается, то путем сопоставления с именем предыдущего процесса. Если совпадений не найдено или несколько процессов имеют одно и то же имя, откроется диалоговое окно Подключение к процессу, в котором можно выбрать правильный процесс.
[!NOTE] Команда Повторно подключиться к процессу доступна начиная с 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 поддерживает присоединение только к одному процессу.
Если отладчик успешно подключается хотя бы к одному типу кода, то можно приступать к отладке процесса. Но отлаживать можно будет только те типы кода, к которым удалось подсоединиться. Неподключенный код в этом процессе будет по-прежнему выполняться, но задавать в этом коде точки останова, просматривать данные и выполнять другие операции отладки не удастся.
Если нужны более конкретные сведения о том, почему отладчику не удалось присоединиться к некоторому типу кода, попробуйте повторно присоединиться только к этому типу кода.
Чтобы получить подробные сведения о том, почему не удалось присоединиться к типу кода:
Отключитесь от процесса. В меню Отладка выберите Отсоединить все.
Вновь подключитесь к процессу, выбрав только тип кода.
В диалоговом окне Присоединение к процессу выберите процесс в списке Доступные процессы.
Щелкните Выбрать.
В диалоговом окне Выбор типа кода выберите Выполнять отладку кода следующих типов и выберите тип кода, к которому не удалось присоединиться. Отмените выбор других типов кода.
В диалоговом окне Подключение к процессу нажмите Подключиться.
Читайте также: