Windbg的设置
Windbg的设置
Windbg本身可以直接从微软的网站上下载
下载地址:http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Windbg的设置其实主要是关于调试符号的设置,没有符号你会很不爽,会忽视掉许多细节,因此调试符号之于Windbg是非常重要的.
1.系统调试符号的设置
首先找个空间足够的位置,XP sp2的调试符号完整一点大概需要1G的空间~~
比如我是在D盘,建立一个MyLocalSymbols文件夹,用来存放系统的符号文件.
然后你可以从微软的网站上下载相应的调试符号包(大要180M~200M大小),要根据你虚拟机中的相应系统版本来下载,安装到MyLocalSymbols文件夹下.
当然,不安装符号包的话也可以设置成调试时自动从网上下载(即使你安装了符号包,有部分内容还是要到网上下载),具体怎么设置稍后讲.
不过我比较喜欢一次搞完,免得每次用的时候都要等它到网上下载比较慢~~
2.自己的调试符号的设置
再建一个文件夹,用于存放我们自己编译出来的驱动的符号文件.单独存放,不要跟系统的混到一起.
我这里就仍在D盘建立一个MySysSymbols文件夹,用于存放自己的符号文件.
然后给这个文件夹创建一个快捷方式,把它放到C:Documents and Settings你的用户名SendTo文件夹下.
这样,以后编译完驱动以后,直接在符号文件上右击->发送到"MySysSymbols"就可以了,很方便~~
3.环境变量的设置
如果你想Windbg启动时自动识别符号路径的设置的话,我们就来建立一个环境变量
在"我的电脑"上右击,"属性"->"高级"->"环境变量",然后我们给当前用记新建一个名为_NT_SYMBOL_PATH的环境变量
值为 :
D:MyLocalSymbols;D:MySysSymbols;SRV*D:MyLocalSymbols*http://msdl.microsoft.com/download/symbols
这样设置以后,系统的调试符号就在D:MyLocalSymbols下,而我们自己驱动的调试符号就在D:MySysSymbols下
当符号文件不匹配时,Windbg会自动连网从http://msdl.microsoft.com/download/symbols下载符号文件到D:MyLocalSymbols,下次再用到时就不用下载了
设置好保存就可以了,修改环境变量需要重新启动系统才能生效~
到这里我再说一点,当你用了一段时间之后,常用的符号文件基本上就全有了,不想等,也可以用一些方法让Windbg马上下载符号文件
直接打一些正确的但是当前符号包中不正确或不匹配的符号名称可以"刺激"Windbg马上到网上下载,我为了节约时间就是这么干的.比如打dt nt!_KPCR,如果你的内核文件TimeDataStamp不匹配(内核等几个核心文件由于更新经常会这样)使得Windbg无法正确显示此符号,它就会马上乖乖地到网上把整个符号文件下载回来~~
在调试符号基本全了以后(调试时基本不再出现Windbg再连网下载符号文件的情况),建议把环境变量中联网的部分去掉。以我的为例,就是设置成 D:MyLocalSymbols;D:MySysSymbols
Windbg源码调试配置
这三个都要设置调试SYS文件所在目录
我是用vs2013进行开发的。所以项目目录是(这是要在代码目录) 修改后必须重启windbg
要调试的时候必须把代码跟SYS文件.obj所有必须存在 放到一起。这样windbg才会载入进行调试 简单地说也就是把代码 .cpp .h所有文件放到上图中的win7Debug里面