通知端口

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

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

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

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

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

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

注释

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

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

注释

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

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

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

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