WinDbg 常用调试命令
<转自> http://blog.csdn.net/agan4014/article/details/2180699
一、设置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的用法相反) |
|
|
注: 具体可以调出帮助文件再查找使用方法.