Windbg是调试Window客户端程序的利器,这篇文章记录其基本使用方法,以方便跟踪调试发布的程序。
1.Windbg与客户端程序关联方法
(1)启动客户端自动唤起windbg:Windbg目录下有名为gflags的可执行文件,打开后如下图所示:
选择Image File页签,按图中所示,将要关联的客户端程序和windbg所在目录全名填入,确定之后便完成了关联,取消关联时将Debugger勾选框勾掉即可;
(2)通过windbg开启客户端:打开windbg,点击File-->Open Executable,找到客户端文件关联即可;
(3)注入到已开启的客户端中:打开windbg,点击File-->Attach to a Process,找到已经运行的客户端进程关联即可。
2.符号表加载
点击File-->Symble File Path,填入客户端程序对应的PDB文件所在路径,然后勾选Reload勾选框,点击OK按钮即可。这里要注意,其实并不是所有的进程对应的符号表都需要加载,一般情况下,只需加载程序员关心的代码对应符号表,许多Windows系统API对应的符号表往往找起来麻烦,并且对于解决问题作用不大。因此加载时提示不关心的进程符号表无法找到也没大的问题。
3.Windbg常用命令
(1)g 运行客户端
(2)~ 显示当前进程中所有线程
(3)~* 显示当前进程中所有线程的详细信息
(4)~0s 把当前线程切换到0号线程,一般即主线程(这个非常实用,因为断下来后线程往往不在主线程)
(5)~*kb 列出当前进程中所有线程的堆栈信息
(6)k 当前线程的堆栈信息