使用 KD 进行远程调试

远程调试涉及在两个不同位置运行的两个调试器。 执行调试的调试器称为 调试服务器。 第二个调试器(称为 调试客户端)从远程位置控制调试会话。 若要建立远程会话,必须先设置调试服务器,然后激活调试客户端。

当你希望让其他人查看你正在电脑上调试的问题时,远程调试非常有用。

正在调试的代码可以在运行调试服务器的同一台计算机上运行,也可能在单独的计算机上运行。 如果调试服务器正在执行用户模式调试,则正在调试的进程可以在与调试服务器相同的计算机上运行。 如果调试服务器正在执行内核模式调试,则所调试的代码通常会在单独的目标计算机上运行。

下图演示了一个远程会话,在该会话中,在主计算机上运行的调试服务器正在对在单独的目标计算机上运行的代码执行内核模式调试。

说明为内核模式调试而连接的远程计算机、主机计算机和目标计算机的示意图。

有多种传输协议可用于远程调试连接:TCP、NPIPE、SPIPE、SSL 和 COM 端口。 假设你已选择使用 TCP 作为协议,并且已选择使用 KD 作为调试客户端和调试服务器。 可以使用以下过程建立远程内核模式调试会话:

  1. 在主计算机上,打开 KD 并与目标计算机建立内核模式调试会话。 (请参阅使用 KD.) 执行 Kernel-Mode 调试

  2. 按 CRTL-Break 进行中断。

  3. 输入以下命令。

    .server tcp:port=5005

    注意 端口号 5005 是任意的。 端口号由你选择。

  4. KD 将使用如下所示的输出进行响应。

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. 在远程计算机上,打开命令提示符窗口,并输入以下命令。

    kd -remote tcp:Port=5005,Server=YourHostComputer

    其中 ,YourHostComputer 是运行调试服务器的主机的名称。

其他信息

有关在命令行上启动 KD (和建立远程调试) 的完整信息,请参阅 KD Command-Line 选项