使用Windbg和VMware来搭建调试内核的环境
现象:虚拟机内还原系统镜像后蓝屏。通过调试查看蓝屏码为7B蓝屏,是由于磁盘类型选用SCSI导致了蓝屏无法正常开机,应改用IDE类型。
原理:VMware在虚拟机OS虚拟一个COM口,并在HostOS创建了一个管道,这个管道的一端连接虚拟机OS的COM口,另一端则是Windbg,所以HostOS(Windbg)和虚拟机OS的所有数据交换都是通过这个管道来流通转发的。
过程:
1、安装好Windbg
2、创建一个Windbg的快捷方式,在“目标”一栏后面加上:-b -k com:pipe,port=\\.\pipe\com_1,resets=0
3、右键此电脑—属性—高级系统设置—环境变量,新建一个环境变量_NT_SYMBOL_PATH 值为: SRV*d:\mysymbol* http://msdl.microsoft.com/download/symbols
4、添加一个串行端口(需先关闭虚拟机OS)
输出到命名管道\\.\pipe\com_1
5、在虚拟机OS的boot.ini(映射到磁盘中寻找该文件)里填入如下内容:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debugport=com1 /baudrate=115200
6、重启虚拟机OS,选择Debug模式
7、双击Windbg快捷方式启动,它会自动去连接虚拟机OS
8、经过调试发现蓝屏原因是因为磁盘类型错误,应选择IDE类型