通过内核调试程序控制用户模式调试程序

可以将用户模式调试器的输入和输出重定向到内核调试器。 此重定向使内核调试器能够控制目标计算机上发生的特定用户模式调试会话。

可以使用 KD 或 WinDbg 作为内核调试器。 请注意,WinDbg 的许多熟悉功能在此方案中不可用。 例如,不能使用“局部变量”窗口、“反汇编”窗口或“调用堆栈”窗口,并且不能单步执行源代码。 这是因为 WinDbg 仅充当目标计算机上运行的调试器 (NTSD 或 CDB) 的查看器。

可以使用 CDB 或 NTSD 作为用户模式调试器。 NTSD 是更好的选择,因为它需要最少的资源来自正在调试应用程序的计算机的处理器和操作系统。 事实上,在内核调试器的控制下启动 NTSD 时,不会创建 NTSD 窗口。 使用 NTSD,可以在启动阶段早期通过串行端口执行用户模式调试,并在关闭后期执行。

注意 将用户模式调试器的输出重定向到内核调试器时,不支持 .shell 命令。

本节包括下列内容:

  • 启动调试会话 介绍了如何开始从内核调试器控制用户模式调试器的会话。

  • 切换模式 介绍了涉及的四种不同模式,以及如何在它们之间交替。

  • 何时使用此方法 描述了此方法特别有用的方案。

  • 将此方法与远程调试相结合 介绍了如何从内核调试器控制用户模式调试器,并同时将其用作调试服务器。 如果用户模式符号位于符号服务器上,则此组合非常有用。