随着工作的需要,慢慢的需要掌握一些调试的手段,特别是对驱动的调试,所以试了试windbg 1394调试方法。
这里我不述说如何真正去调试,只是整理了一下1394调试平台的搭建过程,以便能够对一些还没有接触过1394的朋友提供一些帮助。
什么是1394?
1394是提供给高速外设的串行总线介面标准,此介面标准由IEEE所开发,设计传输速率为100、200、400、800Mb/秒。1394是为精简整体设备的连接而设计,它去除了一些不必要的输入/输出连接,且使主板看起来更干净整齐,而且能降低系统的成本。现在,人们习惯称1394接口为“火线”。
使用1394最明显的好处就是它的传输速率要远超过串口。
准备
首先要确保调试机器和被调试机器都拥有1394接口,现在大多数机器都没有带1394口,由于我用的是IBM T61笔记本,机器本身自带1394口,刚好用来做Host Debug,而且移动起来比较方便。如果目标机上不具备1394口,也有办法。那就是到电脑城买一块1394的PCI转接卡,便宜的卡80块钱就能买到。另外还需要一根1394传输线,有4 ping和6 ping两种接口,无论哪种接口都可以,只要确保两端能够正常连接,我用的是4p to 6p。
配置
关于如何配置1394,可以参考微软提供的资料:http://download.microsoft.com/download/1/8/f/18f8cee2-0b64-41f2-893d-a6f2295b40c8/DW04001_WINHEC2004.ppt
由于操作系统和windbg本身版本的不断更新,各平台的配置稍微有一些变化,一定要注意。
为了避免大家少走一些弯路,下面列出了我成功配置的步骤。
1. 在Target上修改boot.ini,添加
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Debugging with 1394" /fastdetect /debug /debugport=1394 /channel=44
然后重启。
2. 在Target上打开设备管理器,禁用1394总线控制器。(在xp sp2和server 2003以及后续版本不需要此步骤,debug会自动禁用1394总线控制器)
3. 在Host上安装windbg,运行kernel debug->1394 debug,第一次运行的时候会提示安装失败,这时候windbg会自动安装1394虚拟驱动,安装完成之后会在设备管理器的Adapter项添加一个1394 debug的虚拟设备。
4. 重新启动windbg,在kernel deubg->1394 debug项填入和Target相同的channel号,确定。
5. 重启Target机器,在启动界面选择Debug进入操作系统。
如果在Host windbg界面上有显示大量的信息就说明连接成功了。祝大家好运