WINDBG调试内核以及驱动的基本步骤和要点(包括双机调试,虚拟机调试,virtualbox加速调试)

由于时间紧张,只写几个基本步骤和关键点,主要是备忘,算不上什么文章。



由于SOFTICE停止更新,现在最好用用的当然是微软自己的内核调试工具WINDBG,WINDBG既可以调试应用程序,也可以调试内核程序,并且支持源代码调试。

下面大略介绍一下用WINDBG对内核以及驱动进行调试的环境的搭建方法。


1 双机调试

WINDBG的内核调试只能在双机间进行,WINDBG运行在宿主主机上,宿主主机和目标主机之间最好通过串口线连接,当然也可以用过1394,USB进行调试,后期版本增加了network调试方式,WINDBG的版本一直在跟新,可以根据具体的版本自行选择。我自己采用的是通过串口进行调试,这里需要注意的是,如果直接用一条串口线连接宿主主机和目标主机的串口,那么不能使用一般的串口线,而必须使用交叉串口线,这是很多新手容易犯错的地方。交叉串口线可市面上比较少,如有焊接工具可自行修改连线,只需把2,3号线交叉一下即可。

基本的配置

WINDBG上面的配置,通过crtl+k打开内核调试界面,在COM选项下面,Baud Rate 一般设置为115200,Port设置为com1,根据你的串口序列而定。

截图如下:



目标主机的设置,对于XP或者2000系统,只需要修改boot.ini,添加一个调试启动项,这样OS才能进入被调试,不多说了,调试启动项目配置如下:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /NOEXECUTE=OPTIN /FASTDETECT /debug /debugport=COM1 /baudrate=115200

这样在WINDOWS的启动项中多了一个调试模式,选中回车进入,然后在WINDBG里面立即按下热键crtl+break,WINDBG会立即中断系统,这时候你可以在自己的代码上设置断点,或者其他操作。


为了能实现源代码调试,必须设置符号文件路径和源文件路径:

为了能从微软服务器上获取系统模块的符号文件,可以在Symbols search Path中添加这样的路径:SRV*d:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols;

后面你可以接着添加自定义驱动模块的符号文件的路径。

源文件的路径就无需敷数了。


2 单机下通过虚拟机进行调试

双机模式需要2台PC,而且交叉串口线也不容易搞到。因此通过在虚拟机中安装目标主机,然后以管道模拟串口对目标主机进行调试的方法开始流行起来。

如果要调试虚拟机中的系统,需要先对虚拟机进行一些简单的设置,下面以VM7.0为例,简单介绍一下设置的过程。


WINDBG的开始调试界面配置如下:



而在VM这边,假设你已经创建了一个XP的虚拟系统,默认情况下是没有串口的,在设置页面上添加一个串口,必须最后配置成如下图的模式:


当然了 最后也要在此虚拟系统中修改boot.ini文件,添加一个调试启动项,这样,你就可以像双机调试一样调试虚拟机中的目标系统了。


3 用virtual box加速WINDBG对虚拟机环境下的调试


首先是下载VirtualKD安装包,解压后,可以找到一个叫target的子目录,将该target目录copy到虚拟机,点击target/vminstall.exe 运行,然后直接安装即可。

vminstall.exe会自动检测虚拟机的内核版本。


选择install,按照提示直接重启,再次启动的时候你会发现,在启动项中自动添加了一条属于VirtualKD的启动项目。


接着,在宿主端开启vmmon.exe程序即可,点击debugger path选择你的调试工具,vmmon程序必须保持开启,最后点击Run Debugger。vmmon.exe 会调用windbg进入内核调试模式,并等待目标系统的启动。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值