0x1、使用COM 串口调试线,进行windows双机内核调试
在很多情况下我们不得不使用COM串口线进行内核调试,这个也是一种比较古老的方式。使用串口线调试要求Target机器必须要有原生的
COM口,其他的PCI/PCIE/USB转串口均不行,然而对于Host端使用PCI/PCIE/USB转串口则是没有问题的
串口调试线可以在淘宝购买,链接https://item.taobao.com/item.htm?ft=t&id=634739384094
0x2、目标计算机设置
使用bcdedit更改引导信息之前,您可能需要暂时挂起Windows PC安全功能,例如关闭BitLocker和secure boot
在目标计算机上,以管理员身份打开“命令提示符(cmd.exe)”窗口,然后输入以下命令,其中n是用于在目标计算机上进行调试的COM端口号,而rate是用于调试的波特率:
bcdedit /debug on
bcdedit /dbgsettings serial debugport:nbaudrate:rate
注意 波特率在主机计算机和目标计算机上必须相同。推荐的速率是115200。
这里也可以使用msconfig.exe进行图形化的配置
然后重启目标机
0x3、使用调试串口线链接Target端和Host端
将零调制解调器电缆连接到在主机和目标计算机上选择用于调试的COM端口。调试线可以在淘宝购买,链接https://item.taobao.com/item.htm?ft=t&id=634739384094
我们会拿到两根线,一根是USB转串口,另外一根是COM串口线,线序要求完全符合微软的要求。在插入USB转COM的线到Host端的主机后,Host端会多出一个串口设备。
在设备管理器中的端口COM和LPT中TAB页面中,我们可以看到当前多出来的串口号。
0x4、在Host端配置WinDbg
在主机上,打开WinDbg。在文件菜单上,选择内核调试。在“内核调试”对话框中,打开“ COM”选项卡。在“波特率”框中,输入您选择用于调试的速率。在“端口”框中,输入COM n,其中n是为主机上的调试选择的COM端口号。选择确定
您还可以通过在“命令提示符”窗口中输入以下命令来启动与WinDbg的会话;n是用于主机上调试的COM端口号,rate是用于调试的波特率:
windbg -k com:port = COM n ,baud = rate
在主机上,打开“命令提示符”窗口,然后输入以下命令,其中n是用于主机上调试的COM端口号,而rate是用于调试的波特率:
kd -k com:port = COM n ,baud = rate
0x5、确的配置后,我们可以成功的调试了
0x6 通过串行电缆进行调试的故障排除提示
0x6.1在主机和目标上均指定正确的COM端口
0x6.2主机和目标上的波特率必须相同
在主机和目标计算机上,用于通过串行电缆进行调试的波特率必须设置为相同的值。例如,假设您选择的波特率为115200。
在目标计算机上,以管理员身份打开“命令提示符”窗口,然后输入bcdedit / dbgsettings。bcdedit的输出应显示为baudrate 115200
。