手动设置通过串行电缆进行的内核模式调试

Windows 调试工具支持通过零调制解调器电缆进行内核调试。 零调制解调器电缆是已经配置为在两个串行端口之间发送数据的串行电缆。 不要将零调制解调器电缆与标准串行电缆混淆。 标准串行电缆不相互连接串行端口。 有关如何连接零调制解调器电缆的信息,请参阅零调制解调器电缆连接

运行调试器的计算机称为主计算机,正在调试的计算机称为目标计算机

设置目标计算机

重要

在使用 bcdedit 更改启动信息之前,可能需要在测试电脑上暂时挂起 Windows 安全功能,例如 BitLocker 和安全启动。 完成调试并禁用内核调试后,可以重新启用安全启动。

  1. 在目标计算机上,以管理员身份打开命令提示符窗口,并输入以下命令,其中 n 是用于在目标计算机上调试的 COM 端口数,速率是用于调试的波特率:

    bcdedit /debug on

    bcdedit /dbgsettings serial debugport:n baudrate:rate

    注意 主计算机和目标计算机上的波特率必须相同。 建议的速率为 115200。

  2. 重新启动目标计算机。

启动调试会话

将零调制解调器电缆连接到你选择用于在主计算机和目标计算机上进行调试的 COM 端口。

使用 WinDbg

在主计算机上打开 WinDbg。 在“文件”菜单上,选择“内核调试”。 在“内核调试”对话框中,打开“COM”选项卡。在“波特率”框中,输入已为调试选择的速率。 在“端口”框中,输入 COMn,其中 n 是选择用于在主计算机上进行调试的 COM 端口号。 选择“确定”

还可以通过在命令提示符窗口中输入以下命令来启动与 WinDbg 的会话;n 是用于在主计算机上进行调试的 COM 端口号,速率是用于调试的波特率:

windbg -k com:port=COMn,baud=rate

使用 KD

在主计算机上,打开命令提示符窗口并输入以下命令,其中 n 是用于在主计算机上进行调试的 COM 端口号,速率是用于调试的波特率:

kd -k com:port=COMn,baud=rate

使用环境变量

在主计算机上,可以使用环境变量来指定 COM 端口和波特率。 然后,每次启动调试会话时,不必指定端口和波特率。 要使用环境变量来指定 COM 端口和波特率,请打开命令提示符窗口并输入以下命令,其中 n 是用于在主计算机上进行调试的 COM 端口号,速率是用于调试的波特率:

  • set _NT_DEBUG_PORT=COMn
  • set _NT_DEBUG_BAUD_RATE=rate

要启动调试会话,请打开命令提示符窗口,然后输入以下命令之一:

  • kd
  • windbg

通过串行电缆进行调试的疑难解答提示

在主计算机和目标上指定正确的 COM 端口

确定用于在主计算机和目标计算机上进行调试的 COM 端口号。 例如,假设你已将零调制解调器电缆连接到主计算机上的 COM1,并在目标计算机上连接到 COM2。

在目标计算机上,以管理员身份打开命令提示符窗口,然后输入 bcdedit /dbgsettings。 如果在目标计算机上使用 COM2,则 bcdedit 的输出应显示 debugport 2

在主计算机上启动调试器或设置环境变量时指定正确的 COM 端口。 如果在主计算机上使用 COM1,请使用下列方法之一来指定 COM 端口。

  • 在 WinDbg 的“内核调试”对话框中,在“端口”框中输入 COM1。
  • windbg -k com:port=COM1, ...
  • kd -k com:port=COM1, ...
  • set _NT_DEBUG_PORT=COM1

主计算机和目标上的波特率必须相同

用于通过串行电缆进行调试的波特率必须在主计算机和目标计算机上设置为相同值。 例如,假设选择了 115200 的波特率。

在目标计算机上,以管理员身份打开命令提示符窗口,然后输入 bcdedit /dbgsettingsbcdedit 的输出应显示 baudrate 115200

在主计算机上启动调试器或设置环境变量时指定正确的波特率。 使用以下方法之一指定 115200 的波特率。

  • 在 WinDbg 的“内核调试”对话框中,在“波特率”框中输入 115200。
  • windbg -k ..., baud=115200
  • kd -k ..., baud=115200
  • set _NT_DEBUG_BAUD_RATE=115200

零调制解调器电缆连接

下表显示了零调制解调器电缆的连接方式。

9 引脚连接器

连接器 1 连接器 2 信号
2 3 Tx - Rx
3 2 Rx - Tx
7 8 RTS - CTS
8 7 CTS - RTS
4 1+6 DTR - (CD+DSR)
1+6 4 (CD+DSR) - DTR
5 5 信号用接地

25 引脚连接器

连接器 1 连接器 2 信号
2 3 Tx - Rx
3 2 Rx - Tx
4 5 RTS - CTS
5 4 CTS - RTS
6 20 DSR - DTR
20 6 DTR - DSR
7 7 信号用接地

信号缩写

缩写 Signal
Tx 传输数据
Rx 接收数据
RTS 将请求发送到:
CTS 清除到发送
DTR 数据终端就绪
DSR 数据集就绪
CD 运营商检测

其他信息

有关 bcdedit 命令的完整文档,请参阅 BCDEdit 选项参考

另请参阅

手动设置内核模式调试