返回   cpper编程论坛 > Blog > polyrandom
注册账号 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记版面已读

为这篇文章评分

使用WinDbg进行Kernel Debug

发表于 2006-01-22 04:35 AM 作者: polyrandom
最近很倒霉,遇到一个随机蓝屏(BSoD)的bug,大家都被弄得焦头烂额,于是我想到了kernel debug。

下面是我今天使用WinDbg进行kernel debug所作的:

1.准备两台电脑,一台被调试(target),一台运行调试程序(host);
2.在两台电脑的COM口上连上Null Modem线(也可以用USB和1394,不过我没试验过),用Hyper Terminal测试一下。下面假设target的COM口是COM1,host是COM2;
3.在host上面安装WinDbg(可以去这里免费下载);
4.修改target的boot.ini,最简单的方法就是把缺省的启动选项copy成一个新的,譬如说我缺省的是:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn

我复制到下一行,然后加上调试参数,变成:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Kernal Debug" /fastdetect /NoExecute=OptIn /debug /break /debugport=COM1 /baudrate=115200

其中,/debug启动调试模式, /break告诉Windows在启动时停在一个断点上,这样我们可以在host上运行WinDbg并且挂上这台电脑,然后再选Debug->Go 继续运行,这时候target就可以继续启动。最后两个参数指定了target上所使用的COM口(和host的不一定相同)以及波特率(和host的相同)。

5.重新启动target,在启动菜单选择新加入的选项;
6.在host上面运行WinDbg,选择File->Kernel Debug,然后输入host的COM口(这里是COM2)和波特率;
7.等到连接上了,可以看到会断在一个int 3上,选择Debug->Go让target继续运行。

到这里就一切完成了,一旦target遇到BSoD,在core dump以后就会断在host的WinDbg里面。为了满足大家随时蓝屏的需要,MS体贴地提供了一个方法:

在你的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\ Parameters下面创建一个值CrashOnCtrlScroll=1,然后重新启动,这样你每次按下CTRL然后按两次Num Lock就可以人为制造一个BSoD。注意,这个只对PS2键盘有效。

还有很多细节的设置可以使你的调试经历更为有趣,请参阅WinDbg文档。
评论 5 Email文章
评论总数 5

评论

旧
zweily 的头像
"在你的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\ Parameters下面创建一个值CrashOnCtrlScroll=1,然后重新启动,这样你每次按下CTRL然后按两次Num Lock就可以人为制造一个BSoD。注意,这个只对PS2键盘有效。”

Num Lock?

ScrollLock == NumLock?
发表于 2008-01-18 04:04 PM 作者: zweily zweily 当前离线
旧
polyrandom 的头像
Sorry, it is Scroll Lock
发表于 2008-01-18 04:05 PM 作者: polyrandom polyrandom 当前离线
旧
可以试试vmware,这样就不需要两台机器了,一般情况下,效果没有区别
发表于 2008-01-18 04:14 PM 作者: jeff jeff 当前离线
旧
polyrandom 的头像
我们公司不给用盗版软件:’(,否则使用vmware会方便很多,我过去做一些DDK上面的东西都是VMWare的,这样不会出大问题。

不过这次的bug VMWare帮不上很大的忙,因为主要是一个显示方面的bug。vmware里面的县卡驱动估计不一样。
发表于 2008-01-18 04:15 PM 作者: polyrandom polyrandom 当前离线
旧
可以用microsoft virtual pc呀,它现在免费,网上也有它的中文语言包
发表于 2008-01-18 04:16 PM 作者: 李天东
发表评论 发表评论
作者为 polyrandom 的最新文章

所有时间均为格林尼治时间 +9。现在的时间是 12:43 PM


Powered by vBulletin® 版本 3.7.0
版权所有 ©2000 - 2008,Jelsoft Enterprises Ltd.
(C) Copy Right All Right Reserved 2001 - 2007

Search Engine Friendly URLs by vBSEO 3.1.0