KDSerial 扩展性代码示例

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 线交叉连接。

部署测试串行内核调试传输的步骤

  1. 加载和生成项目(输出 kdserial.dll)

  2. 将 kdserial.dll 重命名为 kdcom.dll

  3. 将 kdcom.dll 复制到目标计算机上的 C:\windows\system32\kdcom.dll(建议在覆盖原始 kdcom.dll 之前创建其备份)

  4. 在目标上运行 bcdedit /dbgsettings serial debugport:<port> baudrate:<rate>

  5. 在目标上运行 bcdedit /debug on

  6. 在目标上运行 bcdedit /bootdebug on

  7. 在目标上运行 bcdedit /testsigning yes

  8. 重启目标 & 连接到启动调试器。 要在缺少有效 Microsoft 签名的情况下加载新的 kdcom.dll,则必须执行此步骤。 如果在加载 kdcom.dll 时未启用已连接的启动调试器 &,则 winload 将无法加载它。

注意:自定义 kdcom.dll 将不用于启动调试器传输

  1. 继续通过 winload & 经由自定义 kdcom.dll 传输连接到内核调试器。

另请参阅

如何开发 KDNET 扩展性模块

自动设置 KDNET 网络内核调试

手动设置 KDNET 网络内核调试

手动设置内核模式调试