将和分离附加到程序

附加调试器需要发送具有正确属性的方法和事件序列。

方法和事件序列

  1. 会话调试管理器 (SDM) 调用 OnAttach 方法。

    该方法基于调试引擎 (DE) 进程模型 IDebugProgramNodeAttach2::OnAttach 返回以下方法之一,该方法确定接下来会发生什么。

    如果 S_FALSE 返回,调试引擎已成功附加到程序。 否则, 将调用 Attach 方法来完成附加过程。

    如果 S_OK 返回,则 DE 将在与 SDM 相同的进程中加载。 SDM 执行以下任务:

    1. 调用 GetEngineInfo 以获取 DE 的引擎信息。

    2. 共同创建 DE。

    3. 调用 附加

  2. DE 使用属性将 IDebugEngineCreateEvent2 发送到 SDMEVENT_SYNC

  3. DE 使用属性将 IDebugProgramCreateEvent2 发送到 SDMEVENT_SYNC

  4. DE 使用属性将 IDebugLoadCompleteEvent2 发送到 SDMEVENT_SYNC_STOP

    从程序分离是一个简单的双重过程,如下所示:

  5. SDM 调用 Detach

  6. DE 发送 IDebugProgramDestroyEvent2