昨天学习Windbg使用,看了几篇相关文章。但双机调试部分写得不太清楚,我用了几个小时才配置好,最后才发觉真的很简单。就想简单说一下,希望对新手有帮助。第一次发帖,又不对的地方希望大家指正。
双机调试分为调试机和被调试机,我使用我的笔记本电脑Win7做调试机,使用虚拟机上的XP SP3作为被调试机。 下面介绍Windbg双机调试配置:
首先是被调试机配置:
1.配置机器的调试模式。XP系统的调试模式有几种配置方法:
(1)直接写入boot.ini文件:打开一个文件夹,然后点工具-->文件夹选项-->查看-->显示所有文件和文件夹。点击确定后进入C盘,找到C盘下面的boot.ini文件,右键选择属性,去掉文件的只读属性。然后打开boot.ini,在[operating systems]后面写入下面内容:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debug /debugport=COM1 /baudrate=115200
注意我的被调试机是XP,\WINDOWS后面双引号中的内容填写和里面原来的那个+“ Debug”即可。注意后面的内容的意义,我使用的是虚拟机的COM1,波特率是115200。
(2)开始-->运行-->msconfig-->boot.ini-->高级选项,按下面配置即可:
(3)开始-->运行-->cmd,然后输入
bootcfg /debug ON /port COM1 /baud 115200 /ID 1
如果虚拟机系统是Vista或Win7,由于微软从Vista以后就不用boot.ini文件,可以用下面的方法配置:
开始-->附件-->命令提示符,右键选以管理员身份运行,然后输入
bcdedit /bootdebug on, bcdedit /debug on即可,可以使用bcdedit /dbgsettings 查看配置,如下:
注意:要以管理员权限运行cmd,否则会提示拒绝访问。
第二是虚拟机的配置:
VM-->Settings,出现虚拟机设置对话框:
点击添加(Add...):
注意:添加前最好将打印机删除,有人说打印机会占用COM1.
点击下一步:
点击下一步:
注意上图的This end is the server. 和The other end is an application.双机调试中是将虚拟机作为调试的服务端的。
另外注意这里的名为\\.\pipe\jerry,你可以将jerry换为任意名。
点击完成。
第三是调试主机上Windbg的配置:
我的主机是Win7,找到Windbg以管理员权限运行。
(1)设置符号文件路径:文件(File)-->符号文件路径(Symbol File Path ...),输入:
SRV*C:\VMSymbols*http://msdl.microsoft.com/download/symbols
注意C:\VMSybols为符号的路径,可以更改。
(2)设置源文件路径:文件(File)-->源文件路径(Source File Path ...),输入你要调试的源文件所在的目录。
(3)选择文件(File)-->内核调试(Kernel Debug...):
注意:这是使用的是COM,波特率是115200,应与虚拟机的一致。最应注意的是Port名是\\.\pipe\jerry,也要与虚拟机一致,注意一定要有\\.\pipe\。我因为这里设为jerry,结果调了半天,最后发现这里应该是\\.\pipe\jerry。图中1处的几个图标是不是和VC或VS中的一样?他们的功能也是一样的。如果你输入了源文件目录,那么图中2出的图标会处于Source mode on状态,你可以像使用VC和VS一样进行调试。
点击确定。
配置完成,现在就可以进行双机调试了。
运行虚拟机上的系统,在系统进入引导后可以在windbg中按Ctrl+Break中断系统引导,输入g或按下F5继续运行系统。
具体的调试就不介绍了,希望能对想我这样的新手有帮助。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!