首先抓dump.在任务管理器->进程里面进行抓dump.
然后需要的原材料有dump、源码、pdb
- 打开windbg把源码路径和pdb路径添加进去。
- 需要打开的窗口包括线程窗口(Processes and Threads)、Calls窗口、Command窗口。
- 把dump拖进去,如果Dump文件是64位的,在分析时,需要根据被转储文件的位数来判断是否转为32位的,转换的命令如下:
.load wow64exts !sw 这两个命令可以将64位的Dump转为32位的;s再次输入!sw则可将转为32位的Dump再次转为64的
将微软调试库下载到本地的命令:SRV*C:/dbg/symbols*http://msdl.microsoft.com/download/symbols
- !analyze –v 通过这个命令,可以自动的分析出出错的代码段
- ~* kb 打印所有线程信息。结合线程窗口可以在Command窗口中看到各个可能出错的代码段。
- 快速查找可以打印完线程信息后寻找一下exception.或者是unhand这类信息。然后只能对照源码看。
- lmvm+模块名 查看版本或者看是否已经加载上相应exe或dll了。
- ~33s 切换线程,33为线程ID
- .reload /i 重新加载调试symbol
手动打断点命令: