IDebugEngine2:: 附加
附加调试引擎 (DE)会过程或过程。 ,当 DE 运行定向到 SDM 时,调用该会话调试管理器 (SDM)。
HRESULT Attach(
IDebugProgram2** pProgram,
IDebugProgramNode2** rgpProgramNodes,
DWORD celtPrograms,
IDebugEventCallback2* pCallback,
ATTACH_REASON dwReason
);
int Attach(
IDebugProgram2[] pProgram,
IDebugProgramNode2[] rgpProgramNodes,
uint celtPrograms,
IDebugEventCallback2 pCallback,
Enum_ATTACH_REASON dwReason
);
参数
pProgram
[in] 数组中表示要附加的程序的 IDebugProgram2 对象。 这些是端口程序。rgpProgramNodes
[in] 数组表示程序节点的 IDebugProgramNode2 对象,则每个程序中。 该数组的过程节点表示程序与在 pProgram。 给出程序节点,以使 DE 可以识别程序附加。celtPrograms
[in] 程序和程序节点数。 pProgram 和 rgpProgramNodes 数组。pCallback
[in] 要使用的 IDebugEventCallback2 对象发送调试事件对 SDM。dwReason
[in] 从可连接这些过程指定其原因的 ATTACH_REASON 枚举的值。 有关更多信息,请参见“备注”一节。
返回值
如果成功,则返回; S_OK否则,返回错误代码。
备注
连有三个影响程序,如下所示:
ATTACH_REASON_LAUNCH 指示 DE 附加到程序,因为用户可以启动了包含它的过程。
ATTACH_REASON_USER 指示用户显式请求、附加到程序 (或包含一个程序) 的过程。
ATTACH_REASON_AUTO 指示 DE 附加到特定过程,因为它已经调试在特定的其他程序处理。 这也称为自动附加。
当调用此方法时, DE 需要按顺序发送以下事件:
IDebugEngineCreateEvent2 (如果它尚未为调试引擎的特定实例已发送)
此外,在中,如果附加的原因是 ATTACH_REASON_LAUNCH, DE 需要发送 IDebugEntryPointEvent2 事件。
对于 DE 获取 IDebugProgramNode2 对象与正在调试的程序相对应,它可用于任何私有接口中查询。
在调用一个过程节点的方法之前在 pProgram 或 rgpProgramNodes给定的数组,在表示程序节点的 IDebugProgram2 接口都应,如果需要,启用模拟。 通常,但是,此步骤不是必需的。 有关更多信息,请参见 安全问题。