Метод IDebugClient3::AttachProcess (dbgeng.h)

Метод AttachProcess подключает подсистему отладчика к пользовательскому режимуprocess.

Синтаксис

HRESULT AttachProcess(
  [in] ULONG64 Server,
  [in] ULONG   ProcessId,
  [in] ULONG   AttachFlags
);

Параметры

[in] Server

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

[in] ProcessId

Указывает идентификатор целевого процесса, к который будет присоединен отладчик.

[in] AttachFlags

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

Возвращаемое значение

Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .

Код возврата Описание
S_OK
Метод выполнен успешно.

Комментарии

Этот метод доступен только для динамической отладки в пользовательском режиме.

Примечание Подсистема не будет полностью присоединяться к процессу, пока не будет вызван метод WaitForEvent . Только после того, как процесс сгенерировал событие , например событие создания процесса, оно становится доступным в сеансе отладчика.
 
Дополнительные сведения о создании и подключении к целевым объектам активного пользовательского режима см. в разделе Live User-Mode Targets.

Битовые флаги DEBUG_ATTACH_XXXX управляют подключением подсистемы отладчика к процессу в пользовательском режиме. Параметры DEBUG_ATTACH_XXX, используемые при подключении к целевому объекту ядра, см. в разделе AttachKernel.

В следующей таблице описаны возможные значения флагов.

Константа Описание
DEBUG_ATTACH_NONINVASIVE Прикрепите к целевому объекту неинвазивно. Дополнительные сведения о неинвазивной отладке см. в разделе Неинвазивная отладка (пользовательский режим).

Если этот флаг установлен, то флаги DEBUG_ATTACH_EXISTING, DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK и DEBUG_ATTACH_INVASIVE_RESUME_PROCESS не должны быть установлены.

DEBUG_ATTACH_EXISTING Повторное присоединение к приложению, к которому отладчик уже подключен (и, возможно, прерван). Дополнительные сведения о повторном присоединении к целевым объектам см. в разделе Повторное присоединение к целевому приложению.

Если этот флаг установлен, другие флаги DEBUG_ATTACH_XXX не должны быть заданы.

DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND Не приостанавливайте потоки целевого объекта при неинвазивном подключении.

Если этот флаг установлен, необходимо также задать DEBUG_ATTACH_NONINVASIVE флага.

DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK (Windows XP и более поздние версии) Не запрашивайте начальное включение при присоединении к целевому объекту.

Если этот флаг установлен, то флаги DEBUG_ATTACH_NONINVASIVE и DEBUG_ATTACH_EXISTING не должны быть установлены.

DEBUG_ATTACH_INVASIVE_RESUME_PROCESS Если этот флаг установлен, то флаги DEBUG_ATTACH_NONINVASIVE и DEBUG_ATTACH_EXISTING не должны быть установлены.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть dbgeng.h (включая Dbgeng.h)

См. также раздел

.attach (присоединение к процессу)

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

Подсистема отладчика