启动调试会话
在有关如何 从内核调试器控制用户模式调试的本文档中, 目标应用程序 是指正在调试的用户模式应用程序, 目标计算机 是指包含目标应用程序和 NTSD 或 CDB 进程的计算机, 而主计算机 引用包含内核调试器的计算机。
若要开始使用此方法,必须执行以下操作。 可以按任一顺序执行步骤 1 和 2。
使用 -d 命令行选项在目标计算机上启动 NTSD 或 CDB。
例如,可以使用以下语法附加到正在运行的进程。
ntsd -d [-y UserSymbolPath] -p PID
或者,可以使用以下语法启动新进程作为目标。
ntsd -d [-y UserSymbolPath] ApplicationName
如果要将其安装为事后调试器,应使用以下语法。
ntsd -d [-y UserSymbolPath]
有关此步骤的详细信息,请参阅 使用 CDB 调试用户模式进程。
在主计算机上启动 WinDbg 或 KD,就像要调试目标计算机一样,但实际上不会中断目标计算机。 若要使用 WinDbg,请使用以下语法。
windbg [-y KernelSymbolPath] [-k ConnectionOptions]
有关此步骤的详细信息,请参阅使用 WinDbg 的实时内核模式调试(经典版)。
注意 如果使用 WinDbg 作为内核调试器,那么在这种情况下,WinDbg 的许多熟悉功能都不可用。 例如,不能使用“局部变量”窗口、“反汇编”窗口或“调用堆栈”窗口,也不能单步执行源代码。 这是因为 WinDbg 仅充当目标计算机上运行的调试器(NTSD 或 CDB)的查看器。
如果尚未设置用户模式符号路径,请从“输入> ”提示符进行设置。 如果尚未设置内核模式符号路径,请从 kd> 提示符中设置它。 有关如何访问这些提示以及如何在模式之间切换的信息,请参阅 切换模式。
如果使用 CDB,则与 CDB 关联的命令提示符窗口在继续调试时将保持锁定状态且不可用。 如果使用 NTSD,即使 NTSD 在目标计算机上具有与之关联的进程 ID,也不会创建其他窗口。
如果要从内核调试器运行用户模式调试器,同时将其用作调试服务器,请参阅 将此方法与远程调试相结合。