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。

要求

   
目标平台 桌面
Header dbgeng.h (包括 Dbgeng.h)

另请参阅

.attach(附加到进程)

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

调试器引擎