WinDbg####
WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具。可以用于Kernel模式调试和用户模式调试,还可以调试dump文件。
WDK####
Windows 驱动程序工具包 (WDK)中包含WinDbg,也可以单独下载WinDbg。
dmp文件####
dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。
WinDbg设置符号文件路径####
在WinDbg->File->Symbol File Path这里设置程序的符号文件和微软的符号文件路径。如果系统有环境变量_NT_SYMBOL_PATH就只用设置程序的符号文件路径。
变量名:_NT_SYMBOL_PATH
变量值:srv*D:/MySymbolFile/*http://msdl.microsoft.com/download/symbols
WinDbg生成dmp文件####
WinDbg附加到崩溃的进程上,输入.dump命令可以保存进程的dump文件。
如:.dump /ma C:\testdump.dmp
- /m 缺省选项,生成标准的minidump, 转储文件通常较小,便于在网络上通过邮件或其他方式传输。
- /ma 带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境), 推荐使用这中dump。
- /mFhutwd 带有数据段、非共享的读/写内存页和其他有用的信息的minidump。包含了通过minidump能够得到的最多的信息。是一种折中方案。
分析dump文件####
!analyze -v
编写代码捕捉异常/崩溃,生成dmp文件####
因为用户机器上一般不会装WinDbg,装了也不一定会用。
捕捉异常用API函数,SetUnhandledExceptionFilter()。
生成crash dump用DbgHelp.dll里面的MiniDumpWriteDump()函数。
参考文章####
http://www.cnblogs.com/netwy/articles/2520428.html
http://blog.csdn.net/xbgprogrammer/article/details/23437635
http://blog.csdn.net/xiaoshahai/article/details/7284867/