reludson
驱动牛犊
驱动牛犊
  • 注册日期2004-01-29
  • 最后登录2014-06-22
  • 粉丝1
  • 关注0
  • 积分25分
  • 威望209点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分1分
阅读:1987回复:3

利用VMWare和WinDbg调试驱动程序

楼主#
更多 发布于:2012-05-06 07:24
一直以来,都比较懒,喜欢用syser或者softice调试程序。但是随着windbg的强大,以及对windows高度的兼容性,还是学习学习吧。目前深度的windows系统下安装softice和syser都会造成机器死掉及蓝屏。也只有windbg好用。网上搜了下,整理了下具体步骤。

步骤:

1. 下载http://msdl.microsoft.com/download/symbols/packages/windowsxp/WindowsXP-KB936929-SP3-x86-symbols-full-ENU.exe符号表,然后安装到真实系统中。

2.下载http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.10.3.233.msi windbg程序的最新版本,同样也安装到真实系统中。

3. 设置windbg符号路径:srv*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols

3. 安装vmware5虚拟机, 然后虚拟机中装系统了,我用的是WinXP SP3。安装完成后修改boot.ini文件。在里面[operating systems]节中加入一行,
" multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows?XP Professional - debug" /fastdetect /debug /debugport=com1 /baudrate=115200 "

4. 关闭系统。配制虚拟机的硬件,点击 "Edit virtual machine settings",添加一个Serial Port,选择"Output to named pipe",然后下一步,第一框里保持默认的 "\\.\pipe\com_1"
第二框里选"This end is the server."
第三框里选"The other end is an application."
选中 "Connect at power on"
然后点击 "Advanced>>" 然后在新窗口中选中 "Yield CPU on poll"。保存退出。

5. 在真实系统中,我们要在设备管理器中。找到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后面的路径就是我们前面安装符号表的路径。

6.使用时,首先运行虚拟机系统,到bootloader选择进入哪个系统的时候,我们先按一下上下,将倒计时停止。然后再到真实系统中运行刚才我们创建的WinDbg快捷方式。运行完成后再在虚拟系统中选择带有调试标志的系统即可。此时回到真实系统,稍等一会就可以看到WinDbg输出信息告诉我们两个系统已经连接上了。到此调试器已经和VMware 虚拟机连接成功了,下面就可以进行期待已久的调试工作了。
ren970122
驱动牛犊
驱动牛犊
  • 注册日期2005-09-09
  • 最后登录2013-08-26
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望233点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2012-05-06 18:32
不错,有心了。
兴趣所至,技术所在
ygass
驱动牛犊
驱动牛犊
  • 注册日期2012-05-11
  • 最后登录2012-05-11
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2012-05-11 10:27
高手,你好,我刚刚接触windows内核编程不久,正在看寒江独钓这本书,遇到了一些问题,麻烦您从百忙中抽出时间帮我解答:
1,我按照《寒江独钓》第一章编写了first.c、makefile和source文件,通过x86 Checked Build Environment编译结果成功,但是有一个警告。
2.因为是警告,应该是不影响运行的所以我就没管它,继续按照书上把编译生成的first.sys用SRVINSTW.EXE安装了本机上,但是当我试图通过x86 Checked Build Environment启动first.sys时,问题来了,提示我“发生系统错误2001,指定驱动程序无效”。
请问这是什么地方出了问题,我该怎么做?
wangbosi
驱动牛犊
驱动牛犊
  • 注册日期2011-06-16
  • 最后登录2013-12-21
  • 粉丝1
  • 关注4
  • 积分3788分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2012-05-12 11:22
可以试着用DriverMonitor来启动看看。。。
游客

返回顶部