WinDbg设置和常用调试命令
1. 安装好后先设置环境变量
_NT_SYMBOL_PATH
SRV* 本地目录 store*http://msdl.microsoft.com/download/symbols
本地目录主要要来存放 symbols
或者
.reload:删除所有符号信息并重新加载需要的符号,一般用法“.reoad
/f”,“.reload /i xxxx”当模块与pdb不相符时强制加载。
!analyze:自动分析出异常信息,一般用法“!analyze -v”。
lm:列出加载的所有模块和每个模块的符号信息,一般用法“lm”或“lm vm test.dll”显示所有模块或显示指定模块信息信息。
k*:显示堆栈,一般用法“kb”。
dt:显示局部、全局等变量的值,一般用法“dt
CString 0x06a6e344”,把0x06a6e344的地址解析为CString类型并显示出来。
!wow64exts.sw:32位托管程序在64位机器上运行,产生的也是64位dump时,就得调用这个命令切换到32位模式下来调试。
.load或.loadby:加载一个新的扩展dll到调试器里,一般用法“.loadby sos clr”,调用C#程序常用命令。
!dso:把当前栈上所有的变量都显示出来,调试C#用,“.loadby sos clr”配合这个命令可显示一些东东。
d*:显示给定内存的内容,一般用法“dc 0x06a6e344”显示0x06a6e344处的内容。
!address:显示内存信息,一般用法“!address0x06a6e344”显示0x06a6e344处内在的属性。
dpa或dpu:显示给定内存以ANSI或UNICODE格式编码的字符。
.cls:清屏。
#使用gflags.exe工具(在windbg所在目录下),让某个进程启动时,拉取windbg进行调试
如下截图:当名称为captcomm.exe的进程启动时,拉起windbg调试
.srcpath f:\src // 将源文件查找路径设为:f:\src
注:必须勾选上菜单“Debug”-“Source Mode”;另外pdb须与exe、dll等执行模块匹配上