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 需要按顺序发送以下事件:

  1. IDebugEngineCreateEvent2 (如果它尚未为调试引擎的特定实例已发送)

  2. IDebugProgramCreateEvent2

  3. IDebugLoadCompleteEvent2

此外,在中,如果附加的原因是 ATTACH_REASON_LAUNCH, DE 需要发送 IDebugEntryPointEvent2 事件。

对于 DE 获取 IDebugProgramNode2 对象与正在调试的程序相对应,它可用于任何私有接口中查询。

在调用一个过程节点的方法之前在 pProgram 或 rgpProgramNodes给定的数组,在表示程序节点的 IDebugProgram2 接口都应,如果需要,启用模拟。 通常,但是,此步骤不是必需的。 有关更多信息,请参见 安全问题

请参见

参考

IDebugEngine2

IDebugProgramNode2

IDebugProgram2

IDebugEventCallback2

ATTACH_REASON

IDebugEngineCreateEvent2

IDebugProgramCreateEvent2

IDebugLoadCompleteEvent2

IDebugEntryPointEvent2