会话调试管理器

会话调试管理器(SDM)管理任意数量的调试引擎(DE),这些引擎在任意数量的计算机上调试多个进程中的任意数量的程序。 除了作为调试引擎多路复用器之外,SDM 还提供 IDE 调试会话的统一视图。

会话调试管理器操作

会话调试管理器 (SDM) 管理 DE。 计算机上可以同时运行多个调试引擎。 为了多路复用 DES,SDM 包装来自 DES 的多个接口,并将其作为单个接口公开给 IDE。

为了提高性能,某些接口不会多路复用。 相反,它们直接从 DE 使用,并且对这些接口的调用不会通过 SDM。 例如,与内存、代码和文档上下文一起使用的接口不会多路复用,因为它们引用了特定 DE 调试的特定程序中的特定指令、内存或文档。 没有其他 DE 需要参与该级别的通信。

并非所有上下文都如此。 表达式计算上下文接口的调用通过 SDM 进行。 在表达式计算期间,SDM 包装它提供给 IDE 的 IDebugExpression2 接口,这可能是因为当计算该表达式时,它可能涉及多个在同一进程中调试程序的 DE,这些程序可能在同一线程上运行。

SDM 通常充当委派机制,但它可能充当广播机制。 例如,在表达式计算期间,SDM 充当广播机制,以通知所有 DES 可以在指定线程上运行代码。 同样,当 SDM 收到停止事件时,它会通知相关程序应停止运行。 调用某个步骤时,SDM 会向程序们广播通知,让它们可以继续运行。 断点也会广播到每个 DE。

SDM 不会跟踪当前程序、线程或堆栈帧。 进程、程序和线程信息将连同特定的调试事件一起发送到 SDM。

另请参阅