Windows 调试工具支持扩展 KDNET 串行传输。 KDNET 传输扩展性模块由硬件供应商开发,用于为尚未支持的特定硬件添加内核调试支持。
一般而言,用于调试的串行连接速度较慢,因此在可能的情况下,最好通过以太网卡使用 KDNET。
KDSerial 扩展性代码示例
以下三个代码示例位于 WDK 安装目录中,显示了 KDNET Serial 和 KDSerial 传输扩展的使用情况。
KDNET 串行 16550 示例
KDNET 串行接口显示了 16550 串行接口硬件的使用情况。 它位于此目录中。
C:\Program Files (x86)\Windows Kits\10\Debuggers\ddk\samples\kdnet\serial\16550
在测试 KDNET 串行 16550 示例代码时,串行电缆应按 NULL-MODEM RS232 电缆布线,其中 Tx-Rx 线交叉连接。
KDNET 串行 siig 示例
siig 示例使用 RS-232 硬件握手来实现基于串行的 KDNET。 它位于此目录中。
C:\Program Files (x86)\Windows Kits\10\Debuggers\ddk\samples\kdnet\serial\siig
测试 KDNET 串行 siig 代码样本时,串行电缆应作为直通 RS-232 电缆进行接线。
KDSerial 示例
这表明使用了较早的 KDSerial 传输。 首选串行 KDNET 传输。
C:\Program Files (x86)\Windows Kits\10\Debuggers\ddk\samples\kdserial
在测试 KDSerial 代码示例时,串行电缆应按 NULL-MODEM RS232 电缆布线,其中 Tx-Rx 线交叉连接。
部署测试串行内核调试传输的步骤
加载和生成项目(输出 kdserial.dll)
将 kdserial.dll 重命名为 kdcom.dll
将 kdcom.dll 复制到目标计算机上的
C:\windows\system32\kdcom.dll
(建议在覆盖原始 kdcom.dll 之前创建其备份)在目标上运行
bcdedit /dbgsettings serial debugport:<port> baudrate:<rate>
在目标上运行
bcdedit /debug on
在目标上运行
bcdedit /bootdebug on
在目标上运行
bcdedit /testsigning yes
重启目标 & 连接到启动调试器。 要在缺少有效 Microsoft 签名的情况下加载新的 kdcom.dll,则必须执行此步骤。 如果在加载 kdcom.dll 时未启用已连接的启动调试器 &,则 winload 将无法加载它。
注意:自定义 kdcom.dll 将不用于启动调试器传输
- 继续通过 winload & 经由自定义 kdcom.dll 传输连接到内核调试器。