选择调试引擎实现策略

使用运行时体系结构来确定调试引擎 (DE) 实现策略。 可以创建正在调试的程序的调试引擎进程内。 将进程内调试引擎创建到 Visual Studio 会话调试管理器(SDM)。 或者,为两者创建调试引擎进程外。 以下准则应帮助你选择这三种策略。

准则

虽然 DE 可以进程外处理 SDM 和正在调试的程序,但通常没有理由这样做。 跨进程边界的调用相对较慢。

已为 Win32 本机运行时环境和公共语言运行时环境提供调试引擎。 如果必须替换任一环境的 DE,则应使用 SDM 创建 DE 进程内。

否则,可以将 DE 进程内创建到 SDM,或者创建正在调试的程序的进程内。 需要考虑 DE 的表达式计算器是否需要频繁访问程序符号存储。 或者,如果符号存储可以加载到内存中以便快速访问。 此外,请考虑以下方法:

  • 如果表达式计算器和符号存储之间没有多少调用,或者符号存储是否可以读入 SDM 内存空间,请创建 SDM 进程内 DE。 当调试引擎附加到程序时,必须将调试引擎的 CLSID 返回到 SDM。 SDM 使用此 CLSID 创建 DE 的进程内实例。

  • 如果 DE 必须调用程序来访问符号存储,请使用程序创建 DE 进程内。 在这种情况下,程序将创建 DE 的实例。