用windbg和VMware虚拟机调试驱动程序环境配置
首先要下载安装WDK,然后安装windbg,至于符号表可以暂时不用去下载,在配置中让系统自动下载安装。
以上工具均在真实机中安装,然后下载VMware,安装一个虚拟的windows xp系统。
然后设置虚拟机,安装完成后修改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",然后下一步,第一框里保持默认的 "//./pipe/com_1"
第二框里选"This end is the server."
第三框里选"The other end is an application."
选中 "Connect at power on"
然后点击 "Advanced>>" 然后在新窗口中选中 "Yield CPU on poll"。保存退出。
好了,以上就是虚拟机系统要做的全部事情。
在真实系统中,我们要在设备管理器中。找到Com1口,然后再属性页中修改他的速率为115200。(针对台式机,有的笔记本没有COM1口可以不用设置,也能连上)
然后为使用方便,创建一个WinDbg的快捷方式。快捷方式的命令行为
"D:\WinDDK\7600.16385.1\Debuggers\windbg.exe -y C:\Windows\Symbols\ -b -k com:port=\\.\pipe\com_1,baud=115200,pipe"
这里面-y后面的路径就是我们前面安装符号表的路径。
使用时,首先运行虚拟机系统,到bootloader选择进入哪个系统的时候,我们先按一下上下,将倒计时停止。然后再到真实系统中运行刚才我们创建的WinDbg快捷方式。运行完成后再在虚拟系统中选择带有调试标志的系统即可。此时回到真实系统,稍等一会就可以看到WinDbg输出信息告诉我们两个系统已经连接上了。
注意在启动虚拟机的时候,可能要手工按一下Break建 启动虚拟机。
在调试前,要在windbg的File菜单中设置Symbol Search Path,如:
E:\DDK\diskperf\objchk_wxp_x86\i386; C:\WINDOWS\Symbols;SRV*D:\LocalSymbols*http://msdl.microsoft.com/download/symbols
还有Source File Path、Image File Path都要设
上面的i386是要调试的代码生成路径,其实可以不用设的,系统进去后会自己设置。
当WinDbg显示与虚拟机连接上之后,选择Break
打开源程序文件,插入断点,选择Go
当驱动程序加载并执行到断点处就会停下来
当你进入系统后 在command 窗口中输入 u iocreatefile 可以看到IoCreateFile 的部分内容。
这些已经不是环境配置的问题了。哈哈...关于Windows驱动编程 本人还在学习中,欢迎大家一起交流学习探讨。