阅读:1860回复:4
windbg调试环境的建立
我是一个新手,刚开始试着编制和调试WDM驱动,这两天刚把WINDBG调试环境建立起来,对于一个新手一切都是困难的,走了不少弯路,重起了N次机器,也有了一些经验教训,想把WINDBG调试的环境搭建详细地写下来,不知个位(菜鸟)有没有兴趣。
|
|
最新喜欢:gaooo |
沙发#
发布于:2003-12-19 09:41
hehe,所有的感想和心得都可以帖。
|
|
|
板凳#
发布于:2003-12-20 03:38
先说一下我的硬件配置, 我有3台机器:一台笔记本,两台台式机,不幸的是笔记本上没有串口(比较新的LAPTOP都没有串口了), 台式机到是有串口,可只有一个显示器,平时有一台台式机只做samba server 和pinter server,也不需要显示器,但现在要建立WINDBG环境必须要两台显示器,我可不想再买一台显示器,家里也没地方摆呀:(
于是我从华军软件下载了一个remote access, 这样就可以把笔记本当做host机的显示器了,在此说明,我的三台机器都通过hub相连,相当于一个小的局域网。 先做一条cross的串口cable, 2,3 互换的那种,很简单,只要3跟线就信。 host 和 target我都用串口1, 连上以后先用超级终端试一下,我用57600的波特率,保证串行通信的硬件环境正确无误。 我开发调试驱动都在target上,安装了VC6和WIN2K DDK, 打开boot.ini文件,如下: [boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(1)\\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\\WINNT=\"Microsoft Windows 2000 Professional\" /fastdetect 加一行配制菜单如下: [boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(1)\\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\\WINNT=\"Microsoft Windows 2000 Professional\" /fastdetect multi(0)disk(0)rdisk(0)partition(1)\\WINNT=\"Microsoft Windows 2000 Professional\" /fastdetect /MAXMEM=256 /DEBUGPORT=COM1 /BAUDRATE=57600 以上参数的意义: 串口1, 57600波特率, 限制内存256M。 这样在重起机器时就会多一个选项“启动调试环境”,很奇妙 :),因为我并没有输入“启动调试环境”。 至此target端的设置就好了,回到host端,文档上说只需要安装windbg,我不知怎么做,就把WIN2KDDK又装了一边,在桌面上建一个windbg的快捷方式,给如下的启动参数: D:\\NTDDK\\bin\\windbg.exe -k x86 com1 57600 意义是X86平台,串口1, 57600波特率。和target端的设置对应。 运行windbg, 按下F5: Thread Create: Process=0, Thread=0 Kernel debugger waiting to connect on com1 @ 57600 baud OK, 回到target端, 启动机器,选择“启动调试环境”菜单,等着吧,不一会,你就可以看到windbg的命令窗口告诉你有什么内核模块被调入了,有时还会有断点的消息,我不知道是为什么,因为我没有对target的内核做任何设置,不知断点从何而来,表现在target端,就是死机,启动中止。 我开始时不知怎么回事,只好重起机器,可每次到这都要死, 后来发现,在host端按下F5键,target的启动过程就又继续了。 很有趣,你只要在host端发出中止的命令,target端就会死机,按F5就又恢复了。 到此为止,调试环境已经建立,在编译DRIVER时,打开DBG编译选项,就可以在host的windbg窗口看到DbgPrint()的信息了。 |
|
地板#
发布于:2004-02-25 13:59
我是菜鸟一个,刚刚接手驱动。
楼主能够帮我看一个问题吗? 硬件环境: 一台台式机,一台笔记本; 软件环境:都安装win2k,vc6,ddk,symbols 用串口线测试完超级终端后,将台式机作为host,笔记本作为target。 笔记本修改boot.ini,增加debug模式,在host上打开C:\NTDDK\bin\windbg.exe -k x86 com1 57600,按f5 ,host上的dindbg命令窗口显示kernel debugger waiting to connect on com1 @ 57600 baud,然后启动笔记本进入debug 模式 可是接下来没有楼主所说的调用信息,而target过一会就没有任何响应,热启动无效,只能重启。 不知中间过程中遗漏什么步骤或者哪里的设置出错,本人刚刚接触windbg,一切都请各位大虾指点,多谢多谢! |
|
地下室#
发布于:2004-02-27 15:57
哈哈!
我只有一台笔记本,也没有串口,但我装了两个XP系统,,我在其中的一个系统用WINDBG调试另外一个系统,这样多爽呀,干嘛搞的那么麻烦呢 :D |
|