其中DumpType代表的含义是:
0 = Create a custom dump
1 = Mini dump
2 = Full dump
常用Windbg 指令
1. !analyze -v 详细列出dump文件的信息,其中会有导致错误的代码片段,以及一些可供分析的数据。
2. kb 现时当前线程调用堆栈,一般可以确认是程序哪一行出了问题。
3. ~*kb 显示所有线程调用堆栈。
4. lm 显示当前加载的模块信息 (*.pdb *.dll)
5. kP 可以看函数的入参。
6. !for_each_frame dev /t : 可以看函数中的局部变量。
7. dc,db : 查看某一内存中的值,可以直接跟变量名,不过可能需要回溯栈。
8. !threads : 显示所有线程。
9:~0s,~1s: 进入某个线程。
10: !frame ProcessA!FunctionA: 查看某一个变量
11: !uniqstack: 扩展命令现实当前进程中所有线程的调用堆栈,除开重复的那些。
12:!teb: 扩展以的格式化后的形式现实线程环境块TEB的信息。
13:s-sa 和s-su: 命令搜索未指定的ASCII 和Unicode 字符串。这在检查某段内存是否包含可打印字符时有用。
14: dds、dps 和 dqs: 命令显示给定范围内存的内容。
dds 是四个字节视为一个符号,dqs是每8个字节视为一个符号,dqs 是根据当前处理器架构来选择最合适的长度。
15:.kframes: 命令设置堆栈回溯显示的默认长度,默认20 .
16: k,kb ,kd,kp ,kP,kv: K * 命令显示给定线程的调用堆栈,以及其他相关信息。通常要结合12使用,否则显示出来的东西很少。
17: .reload /i xxx.dll :忽略。pdb文件版本不匹配的情况。