阅读:2144回复:3
利用VMWare和WinDbg调试驱动程序
一直以来,都比较懒,喜欢用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 虚拟机连接成功了,下面就可以进行期待已久的调试工作了。 |
|
沙发#
发布于:2012-05-06 18:32
不错,有心了。
![]() |
|
|
板凳#
发布于: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,指定驱动程序无效”。 请问这是什么地方出了问题,我该怎么做? |
|
地板#
发布于:2012-05-12 11:22
可以试着用DriverMonitor来启动看看。。。
|
|