IDebugClient::AttachProcess 方法 (dbgeng.h)
AttachProcess 方法将调试器引擎连接到用户模式进程。
语法
HRESULT AttachProcess(
[in] ULONG64 Server,
[in] ULONG ProcessId,
[in] ULONG AttachFlags
);
参数
[in] Server
指定用于附加到进程的进程服务器。 如果 Server 为零,引擎将在不使用进程服务器的情况下连接到本地进程。
[in] ProcessId
指定调试器将附加到的目标进程的进程 ID。
[in] AttachFlags
指定控制调试器如何附加到目标进程的标志。 有关这些标志的详细信息,请参阅备注。
返回值
此方法也可能返回错误值。 有关更多详细信息 ,请参阅返回值 。
返回代码 | 说明 |
---|---|
|
方法成功。 |
注解
此方法仅适用于实时用户模式调试。
注意 在调用 WaitForEvent 方法之前,引擎不会完全附加到进程。 只有在进程生成事件(例如 create-process 事件)后,它才会在调试器会话中可用。
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) |