Chinaunix首页 | 论坛 | 博客
  • 博客访问: 508543
  • 博文数量: 35
  • 博客积分: 3472
  • 博客等级: 中校
  • 技术积分: 935
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-04 06:54
文章分类
文章存档

2014年(4)

2013年(2)

2011年(3)

2010年(9)

2009年(9)

2008年(8)

分类:

2009-12-09 07:49:07


首先声明,我对window下的调试很陌生,这次为了调试驱动,到网上找找资料,做了一点尝试,给自己做个记录,免得以后忘了。
最终能调试window内核了,但是我的目的还没有达到,因为驱动要到连接设备的时候才能加载,这个时机很难把握,下次再试试看吧。

下面的内容来自cheng的博客
!6C167A479FA6A491!840.entry

也 许很多人早就知道了,但是我不知道,以前一直抓住softice大腿不放,但是由于在我的Hyber Thread处理器上,Softice实在是运行的太不理想了。故而只能利用WinDbg了。不过听牛人说过,WinDbg可以把内核的全部结构都显示出 来,要比Softice强。等我以后测试看看。
首先,最好先下载 符号表,然后安装到真实系统中。
再下载 WinDbg程序的最新版本,同样也安装到真实系统中。
接下来我们要在虚拟机中装系统了,我用的是WinXP SP2。安装完成后修改boot.ini文件。在里面[operating systems]节中加入一行,
" multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - debug" /fastdetect /debug /debugport=com1 /baudrate=115200 "
随后关闭系统。配制虚拟机的硬件,点击 "Edit virtual machine settings",添加一个Serial Port,选择"Output to named pipe",然后下一步,第一框里保持默认的 ""
第二框里选"This end is the server."
第三框里选"The other end is an application."
选中 "Connect at power on"
然后点击 "Advanced>>" 然后在新窗口中选中 "Yield CPU on poll"。保存退出。
好了,以上就是虚拟机系统要做的全部事情。
在真实系统中,我们要在设备管理器中。找到Com1口,然后再属性页中修改他的速率为115200。
然后为使用方便,创建一个WinDbg的快捷方式。快捷方式的命令行为
"C:\Program Files\Debugging Tools for Windows\windbg.exe" -y C:\Windows\Symbols\ -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
这里面-y后面的路径就是我们前面安装符号表的路径。
使用时,首先运行虚拟机系统,到bootloader选择进入哪个系统的时候,我们先按一下上下,将倒计时停止。然后再到真实系统中运行刚才我 们创建的WinDbg快捷方式。运行完成后再在虚拟系统中选择带有调试标志的系统即可。此时回到真实系统,稍等一会就可以看到WinDbg输出信息告诉我 们两个系统已经连接上了。剩下的事情吗,当然是调试,我还没做。。。呵呵。去调试了。
好累,吭哧吭哧敲了半天

下面这些内容来自微软网站:
要查看和编辑 Boot.ini 文件,请按照下列步骤操作:
  1. 右键单击“我的电脑”,然后单击“属性”。
    - 或 -
    单击“开始”,单击“运行”,键入 sysdm.cpl,然后单击“确定”。
  2. 在“高级”选项卡上,单击“启动和故障恢复”下的“设置”。
  3. 在“系统启动”下,单击“编辑”。

示例 Boot.ini 文件

这是安装了 Windows XP Professional 的计算机中的默认 Boot.ini 文件的一个示例:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
这是先前在单独的分区中安装的 Windows 2000 附带的上述 Boot.ini 文件的一个示例。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 2000 Professional" /fastdetect

阅读(2770) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~