IDebugClient5::AttachProcess 方法 (dbgeng.h)

AttachProcess 方法将 调试器引擎 连接到用户模式进程。

语法

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

参数

[in] Server

指定要用于附加到进程的进程服务器。 如果 服务器 为零,则引擎将在不使用进程服务器的情况下连接到本地进程。

[in] ProcessId

指定调试器将附加到的目标进程的进程 ID。

[in] AttachFlags

指定控制调试器如何附加到目标进程的标志。 有关这些标志的详细信息,请参阅“备注”。

返回值

此方法也可能返回错误值。 有关详细信息,请参阅 返回值

返回代码 描述
S_OK
该方法成功。

言论

此方法仅适用于实时用户模式调试。

注意 在调用 WaitForEvent 方法之前,引擎不会完全附加到进程。 只有在进程生成事件(例如 create-process 事件)之后,它才会在调试器会话中可用。
 
有关创建和附加到实时用户模式目标的详细信息,请参阅 实时 User-Mode 目标

DEBUG_ATTACH_XXX 位标志控制 调试器引擎 附加到用户模式进程的方式。 有关附加到内核目标时使用的 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

调试器引擎