Сообщество, где люди делятся уникальным опытом
Вопросы и ответы по любой теме от IT сообщества
Помогаем строить карьеру в IT-индустрии
Биржа удаленной работы для IT-специалистов
Хабр Q&A — вопросы и ответы для IT-специалистов
Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.
Опубликовано: Октябрь 2016
Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.
Присоединение к процессу отладчик Visual Studio часто используется приложение еще не запущено из Visual Studio, когда необходимо выполнить его отладку. Например можно присоединить к процессу IIS или службы Windows, на котором размещается приложение .NET. Процесс присоединения к может быть локальным или удаленным. Другой пример — Если приложение без отладчика выполняется и возникает исключение, может затем присоединяется к процессу выполнения приложения, чтобы начать отладку.
Для некоторых типов приложений (например, приложений для магазина Windows), не присоединить имя процесса, но использовать отлаживать установленный пакет приложения вместо него параметр меню (см. таблицу).
Позволяет определять необходимость присоединения к процессу для вашего сценария, ниже представлены некоторые из наиболее распространенных сценариях отладки. Где доступны дополнительные инструкции, мы предоставляем ссылки.
Сценарий | Отладка метода | Имя процесса | Обратите внимание и ссылки |
---|---|---|---|
Отладка любого типа поддерживаемого приложения на локальном компьютере, запустив его из Visual Studio | Стандартная отладку F5 | Н/Д | В разделе Приступая к работе с отладчиком |
Удаленная отладка ASP.NET 4 или 4.5 на сервере IIS | Использовать средства удаленного управления и присоединить к процессу | w3wp.exe | В разделе удаленной отладки ASP.NET на удаленном компьютере IIS |
Удаленная отладка ASP.NET Core на сервере IIS | Использовать средства удаленного управления и присоединить к процессу | dnx.exe | Развертывание приложения в разделе Опубликовать в IIS. Для отладки см удаленной отладки ASP.NET на удаленном компьютере IIS |
Другие типы поддерживаемых приложений на серверный процесс отладки | Использовать средства удаленного управления (если сервер является удаленным) и присоединение к процессу | Iexplore.exe или других процессов | При необходимости используйте диспетчер задач для определения процесса. В разделе удаленной отладки и последующих подразделах этого раздела |
Удаленная отладка классического приложения Windows | Инструменты удаленной отладки и F5 | Н/Д | В разделе удаленной отладки |
Удаленная отладки универсальной Windows (UWP), OneCore, HoloLens или IoT приложения | Отладка установленного приложения пакета | Н/Д | Используйте отладки или другие отладки целевых объектов и отладки пакета установки приложения вместо присоединиться к процессу |
Отладка приложения универсальной Windows (UWP), OneCore, HoloLens или IoT, вы не запускали из Visual Studio | Отладка установленного приложения пакета | Н/Д | Используйте отладки или другие отладки целевых объектов и отладки пакета установки приложения вместо присоединиться к процессу |
Предупреждение |
---|
Для присоединения к универсальному приложению Windows, которое написано на JavaScript, сначала необходимо включить отладку для приложения. См. раздел Attach the debugger в Центре разработчика Windows.
Примечание |
---|
Примечание |
---|
Отладчик не присоединяется автоматически к дочернему процессу, который запущен отлаживаемым процессом, даже если дочерний проект находится в том же решении. Чтобы отладить дочерний процесс: Присоединитесь к дочернему процессу после того, как он запущен. Настройте параметры Windows таким образом, что дочерний процесс автоматически запускался в новом экземпляре отладчика. Запуск отладки нескольких процессов в решении Visual StudioЕсли в решении Visual Studio имеется несколько проектов, которые могут выполняться независимо (проекты, выполняемые в отдельных процессах), можно выбрать, какие проекты запускаются отладчиком. Смена запускаемого проектаЧтобы сменить запускаемый проект для решения, выберите проект в Обозревателе решений, затем выберите пункт Назначить запускаемым проектом в контекстном меню. Запуск конкретного проекта в решенииЧтобы запустить проект для решения, не сменяя запускаемый по умолчанию проект, выберите требуемый проект в Обозревателе решений и выберите команду Отладка в контекстном меню. Затем можно выбрать команду Запустить новый экземпляр или Шаг с заходом в новый экземпляр. Запуск нескольких проектов в решенииВ Обозревателе решений выберите решение, затем в контекстном меню выберите Свойства. Выберите Общие свойства, Запускаемый проект в диалоговом окне Свойства. Для каждого проекта, который необходимо изменить, выберите Запустить, Запуск без отладки или Нет. Присоединение к процессуОтладчик может также присоединяться к программам, выполняемым в процессах вне Visual Studio, включая программы, которые работают на удаленном устройстве. После присоединения к программе можно использовать команды отладчика, проверять состояние программы и выполнять другие действия. Возможности проверки программы могут быть ограничены в зависимости от того, была ли программа собрана с отладочной информацией, имеется ли доступ к исходному коду программы, а также отслеживает ли JIT-компилятор среды CLR отладочную информацию. Присоединение к процессу, выполняющемуся на локальном компьютере Выберите Отладка, Присоединиться к процессу. В диалоговом окне Присоединение к процессу выделите процесс в списке Доступные процессы и нажмите кнопку Присоединиться. Автоматический запуск процесса в отладчикеВ некоторых случаях может потребоваться отладить код запуска для программы, которая запускается другим процессом. К ним относятся службы и действия пользовательской настройки. В этих случаях можно заставить отладчик запускаться и автоматически присоединяться при запуске приложения. Запустите Редактор реестра (regedit.exe). Перейдите к папке HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionImage File Execution Options. Выберите папку приложения, которое требуется запустить в отладчике. Если имя приложения не перечислено как дочерняя папка, выберите Параметры выполнения файла изображения и затем выберите Создать, Раздел в контекстном меню. Выберите новый раздел, в контекстном меню выберите команду Переименовать, а затем введите имя приложения. В контекстном меню папки приложения выберите Создать, Строковый параметр. Поменяйте имя нового значения с New Value на debugger . В контекстном меню записи "debugger" выберите Изменить. В диалоговом окне изменения строкового параметра введите vsjitdebugger.exe в поле Значение.
Переключение между процессамиВо время отладки можно подключиться к нескольким процессам, но в любой момент времени только один из них будет активным в отладчике. Активный или текущий процесс можно выбрать с помощью панели инструментов "Место отладки" или в окне Процессы. Для переключения между процессами оба процесса должны находиться в режиме приостановки выполнения. Установка текущего процесса На панели инструментов "Место отладки" выберите Процесс, чтобы отобразить список Процесс. Выберите процесс, который требуется установить в качестве текущего процесса. Если панель инструментов Место отладки не отображается, выберите Сервис, Настроить. На вкладке Панели инструментов выберите Место отладки. Откройте окно Процессы (сочетание клавиш: Ctrl+Alt+Z), чтобы найти процесс, который необходимо сделать текущим процессом, и дважды щелкните его. Текущий процесс будет отмечен желтой стрелкой. Переключение к проекту делает этот проект текущим процессом для отладки. Статус текущего процесса отображается в любом используемом окне отладчика, и все команды пошагового выполнения влияют только на текущий процесс. Команды прерывания, пошагового выполнения и продолжения выполнения |
Примечание |
---|
Команда | Прерывать все процессы при прерывании одного
Флажок установлен (по умолчанию) |
Прерывать все процессы при прерывании одного
Флажок снят |
Меню Отладка:
— Прервать все |
Все процессы приостанавливаются. | Все процессы приостанавливаются. |
Меню Отладка:
— Continue |
Все процессы возобновляются. | Все приостановленные процессы возобновляются. |
Меню Отладка:
— Шаг с заходом |
Во время выполнения шага текущего процесса все процессы выполняются.
Затем все процессы приостанавливаются. |
Текущий процесс выполняется пошагово.
Приостановленные процессы возобновляются. Выполняемые процессы продолжают выполняться. |
Меню Отладка:
— Шаг с заходом (только текущий процесс) |
Недоступно | Текущий процесс выполняется пошагово.
Остальные процессы сохраняют свое текущее состояние (остаются приостановленными или продолжают выполняться). |
Окна исходного кода.
— Точка останова |
Все процессы приостанавливаются. | Приостанавливается только процесс окна исходного кода. |
Контекстное меню окна исходного кода:
— Выполнить до текущей позиции Окно исходного кода должно находиться в текущем процессе. |
Все процессы выполняются, а процесс в окне исходного кода выполняется до курсора и приостанавливается.
После этого приостанавливаются все остальные процессы. |
Процесс в окне исходного кода выполняется до курсора.
Остальные процессы сохраняют свое текущее состояние (остаются приостановленными или продолжают выполняться). |
Контекстное меню окна Процессы:
— Остановить процесс |
Недоступно | Выбранный процесс приостанавливается.
Остальные процессы сохраняют свое текущее состояние (остаются приостановленными или продолжают выполняться). |
Контекстное меню окна Процессы:
— Продолжить процесс |
Недоступно | Выбранный процесс возобновляется.
Остальные процессы сохраняют свое текущее состояние (остаются приостановленными или продолжают выполняться). |
Переключение процессов, приостановка и продолжение выполнения, пошаговое выполнение исходного кода
Описание
- Команды остановки, окончания и отсоединения
Когда в отладчике одновременно открыто несколько процессов, команда Отладка, Остановить отладку по умолчанию приводит к остановке или отсоединению от всех процессов в зависимости от того, каким образом тот или иной процесс был открыт в отладчике.
Если текущий процесс был запущен в отладчике, этот процесс завершается.
Если отладчик был присоединен к текущему процессу, отладчик отсоединяется от процесса, не прекращая его выполнение.
Например, если запустить отладку некоторого процесса из решения Visual Studio, затем присоединить отладчик к другому процессу, который уже выполняется, после чего выбрать Остановить отладку, произойдет следующее: сеанс отладки завершится; процесс, который был запущен в Visual Studio, также завершится; присоединенный процесс продолжит выполняться. Действие команды остановки отладки можно индивидуально задать для каждого процесса с помощью описанной ниже процедуры.
Примечание |
---|
Параметр Прерывать все процессы при прерывании одного не влияет на поведение остановки отладки, завершения процессов и отсоединения от процессов.
Изменение влияния команды "Остановить отладку" на отдельный процесс
- Откройте окно Процессы (сочетание клавиш: Ctrl+Alt+Z). Выберите процесс и установите либо снимите флажок Отсоединиться при остановке отладки.
Команды остановки, окончания и отсоединения
Команда | Описание |
Меню Отладка: |
— Остановить отладку
1. Процессы, запущенные отладчиком, завершаются.
2. Присоединенные процессы отсоединяются от отладчика.
— Завершить все
— Отсоединить все
— Отсоединить процесс
Остальные процессы сохраняют свое текущее состояние (остаются приостановленными или продолжают выполняться).
— Завершить процесс
Остальные процессы сохраняют свое текущее состояние (остаются приостановленными или продолжают выполняться).
— Отсоединиться при остановке отладки
— Флажок установлен: отладчик отсоединяется от процесса.
— Флажок снят: процесс завершается.
Остановка отладки, окончание или отсоединение от процессов
Описание