看《Windows核心编程》总是想把每一个细节都搞明白,所以调试内核是必不可少的, 不想使用Win7下的本地内核调试。索性拿出《寒江独钓》配置一下虚拟机,双机调试XP系统吧。WinDbg毕竟是微软支持的调试器,虽然OllyDbg也非常优秀,但是调试内核以及系统机制, 还是一点点学习WinDbg的使用吧。 www.2cto.com 1.在VMware下安装纯净Win XP操作系统。2.下载符合操作系统版本的WinDbg(http://msdn.microsoft.com/en-us/windows/hardware/ gg463009.aspx),进行安装。3.设置虚拟机操作系统boot.ini文件,boot.ini文件是隐藏属性,需要设置一下文件夹选项。 使用记事本打开后,在后面编辑,填入如下内容。(Win7系统设置请Google)multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP Professional Debug" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200 4.设置虚拟机的管道虚拟串口1).运行 VMware ,点击"Edit virtual machine settings"2).点击"Add"运行VMware的Hardware Wizard3).选择"Serial Port",点"下一步"4).选择"Output to named pipe",点"下一步"5).保持第一框里默认的"//./pipe/com_1"6).第二框里选"This end is the server."(不同VMware默认选项不同)7).第三框里选"The other end is an application." 8).勾选"Connect at power on" 5.设置WinDbg,建立桌面快捷方式,在查看属性中的目标项后添加如下运行参数。 将此快捷方式命名为VMWinDbg用于双机调试。 www.2cto.com C:/windbg/windbg.exe -b -k com:port=//./pipe/com_1,baud=115200,pipe 完成上述步骤,基本的设置就完成了,设置符号表就不赘述了,现在只需要在虚拟机系统启动时, 选择启动调试程序。 在主机开启VMWinDbg,就能发现通过虚拟串口已经跟虚拟机系统连接上,能够进行内核调试了。 PS:如果还是无法调试,可以正常启动虚拟机(非调试),在设备管理器,对COM1串口进行 “每秒位数项”的设置,设置为115200。