WinDbg 简单说明
一、设置Symbols File Path
“srv*c:/MySymbols*http://msdl.microsoft.com/download/symbols;c:/MySymbols;”,将其输入“Symbols Path”中,并将“Reload”选上,点击OK, 将立即更新Symbols。
说明:“c:/MySymbols”是Symbols File本地存储路径。如果本地没有,Windbg将自动从http://msdl.microsoft.com/download/symbols上下载,下载后就直接使用本地的Symbols文件。如:第二个“c:/MySymbols”。
二、调试的工程设置:DebugàEnable Debuggersà选上“Enable unmanaged code debugging”。 这时可用于调试非托管代码。
三、Windbg加载调试程序:
1. 从“Open Executable”加载.exe程序
2. !g //运行程序。
3. Break //程序
4. !DumpHeap //显示堆信息;此时你会发现“c:/MySymbols”中多了“mscorwks.pdb”文件夹
四、常用命令。
命令 | 操作 |
.hh | 调出帮助文件 |
!help | 显示部分命令 |
!help <command> | 显示某命令的详细信息 |
|
|
lm | 显示进程中加载的模块信息 |
lmvm | 可以查看任意一个DLL/EXE的详细信息 |
lml | 查看模块的加载情况 |
ld | 加载某块 |
|
|
!thread | 查看所有线程 |
~ns | 切换到第n号线程 |
!runaway | 显示每一个线程所消耗CPU的时间 |
|
|
!sym noisy | 开启WinDbg log日志,显示具体信息 |
!analyze -v | 调用WinDbg智能解析,一般程序崩溃的情况下首选调用 |
!locks | 查看锁,一般调试死锁的情况下使用 |
|
|
~*kb | 显示所有调用堆栈 |
kb | 显示当前调用堆栈 |
dv | 显示局部变量 |
dt | 显示数据结构 |
dd | 察看堆内容 |
!address | 显示某一地址上的页信息 |
u | 显示汇编代码 |
uf | 反汇编代码 |
.exr | 打印出异常的信息 |
.cxr | 切换上下文 |
|
|
x | 查找某一符号的地址 |
dds | 把某一地址对应到符号(于x的用法相反) |
|
|