通知端口

启动程序后,必须通知端口,如下所示:

  1. 当端口收到新的程序节点时,它会将程序创建事件发送回调试会话。 事件附带一个表示程序的接口。

  2. 调试会话查询可附加到的调试引擎(DE)的标识符的程序。

  3. 调试会话检查,以查看 DE 是否位于该程序允许的 DE 列表中。 调试会话从解决方案的活动程序设置中获取此列表,该设置最初由调试包传递给它。

    DE 必须位于允许列表中,否则 DE 将不会附加到程序。

    以编程方式,当端口首次接收新程序节点时,它会创建一个 IDebugProgram2 接口来表示程序。

注意

这不应与 IDebugProgram2 调试引擎(DE)稍后创建的接口混淆。

端口通过 COM IConnectionPoint 接口将 IDebugProgramCreateEvent2 程序创建事件发送回会话调试管理器(SDM)。

注意

这不应与 IDebugProgramCreateEvent2 DE 稍后发送的接口混淆。

除了事件接口本身,端口还发送 分别表示端口、进程和程序的 IDebugPort2IDebugProcess2IDebugProgram2 接口。 SDM 调用 IDebugProgram2::GetEngineInfo 以获取可以调试程序的 DE 的 GUID。 GUID 最初是从 IDebugProgramNode2 接口获取的

SDM 检查,以查看 DE 是否位于允许的 DES 列表中。 SDM 从解决方案的活动程序设置中获取此列表,最初由调试包传递给它。 DE 必须位于允许列表中,否则它不会附加到程序。

确定 DE 的标识后,SDM 即可将其附加到程序。