Windbg串口联调

来源:互联网 发布:淘宝店如何打快递单 编辑:程序博客网 时间:2024/05/23 15:56

使用Windbg进行内核驱动调试时,可以使用的连接方式有很多:USB、网络、串口等。这里主要讲一下串口调试时的连接和设置方法。


一、目标机的设置


a. 以下是Windbg的帮助文档中给出的设置方法:

  1. On the target computer, open a Command Prompt window as Administrator, and enter the following commands, wheren is the number of the COM port used for debugging on the target computer, andrate is the baud rate used for debugging:

    bcdedit /debug on
    bcdedit /dbgsettings serial debugport:n baudrate:rate

    Note  The baud rate must be the same on the host computer and target computer. The recommended rate is 115200.
  2. Reboot the target computer. 
在指定端口时,一般常用的端口是COM1,如果该端口已经被占用,则根据实际情况指定一个可用的端口。


b. 有一种更简便的设置方法


快捷键”Win + R“打开”运行“窗口,输出msconfig,进入系统配置,在”引导“选项卡中,选择”高级选项“,勾选”调试“选项,并进行相应的调试设置。确定后,直接重启即可。


Windows系统在启动过程中会调用KdDebuggerInitialize0来对通信扩展模块进行初始化,此时会进行COM端口的初始化。当初始化COM端口后,HAL模块中会有一个全局变量记录下已被内核调试使用的COM端口,此后的串行口驱动程序(serial.sys)会检查这个变量,并跳过用于调试用途的串行端口,因此,在目标系统的设备管理器中我们看不到用于内核调试的串行端口。


二、主机的设置

首先要确定的是主机使用的串口的端口号。当使用串口线将主机和目标机连接后,在主机上打开设备管理器,查看串口线对应的设备的COM端口号,即为联机调试时主机需要使用的端口号。

以管理员权限打开Windbg后,选择”kernel debug",在COM选项卡下进行相应的设置:

Baud Rate一般设置为115200,Port端口号设置为COMn,(其中n即为刚才在设备管理器中查看到的COM端口号)

设置完成后,重启目标机,即可实现联机内核调试。此时主机上的Windbg是无法操作的,需要使用“Ctrl + Break”去中断目标机的运行后,才可以对主机上的Windbg进行操作。

0 0