WinDebug 是一款调试工具可以调试进程的工具,程序测试软件功能强大 其中一项是使用WENDEBUG检测蓝屏的原因 很实用
查看当前线程的调用堆栈
kb
查看全部线程的调用堆栈
~*kb
显示分析的详细信息
!analyze -v
继续执行
g
查看线程详细信息,例如线程入口地址
~21 (数字代表线程id)
查看变量地址
x 变量名,可以用通配符
例如
x 05memcorrupt!g_*
用给定类型查看对象
dt 类型名 地址
例如
dt CAppInfo 0x00032cb0
查看给定地址的内容
dd 地址
例如
dd 0x72726443
以下都是看内容,显示的形式不同而已
dc
du
dds
dpp
dpa
dpu
查看当前指令
u eip
查看给定地址的代码内容
u 7c80540f
查看加载的全部模块的起始地址
lm
同时包含起始和结束的信息
------------------------------------------------------------
展开当前调用栈的内容
dd esp esp+100
注意这里要用正数,注意栈的生长方向
------------------------------------------------------------
查看给定代码地址对应的模块
ln 0100156a
-----------------------------------------------------
顺便提一下,我们不需要等到发生异常才能去调试一个进程。任何时候都可以通过运行vsjitdebugger.exe -p PID 来让调试器附着到任意进程,PID表示要调试的进程的ID.
事实上,Windows任务管理器使得调试进程更加容易,我们可以打开“进程”属性页,选择一个进程,并单击鼠标右键,然后选择“Debug”.
生成dump文件可以通过设置让系统在程序错误时生成,也可以手动生成dump文件
1、如何手动生成dump文件
程序崩溃(crash)的时候,可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为dump 文件。
步骤:
1) 打开WinDBG并将之Attach 到crash的程序进程
2) 输入产生dump 文件的命令
WinDBG产生dump 文件的命令是 .dump ,可以选择不同的参数来生成不同类型的dump文件。
选项(1): /m
命令行示例:.dump /m C:\dumps\myapp.dmp
注解: 缺省选项,生成标准的minidump, 转储文件通常较小,便于在网络上通过邮件或其他方式传输。 这种文件的信息量较少,只包含系统信息、加载的模块(DLL)信息、 进程信息和线程信息。
选项(2): /ma
命令行示例:.dump /ma C:\dumps\myapp.dmp
注解: 带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境), 推荐使用这中dump。
选项(3):/mFhutwd
命令行示例:.dump /mFhutwd C:\dumps\myapp.dmp
140.5M / 09-05
76.4M / 03-25
55M / 06-05
237.9M / 04-13
900.9M / 03-02
96.2M / 07-06
311.2M / 07-06
335M / 07-06
200M / 07-06
413.8M / 07-06
484.7M / 09-27
165.4M / 09-05
353.9M / 06-05
131.8M / 04-13
195.6M / 03-03
45.6M / 09-08
665.2M / 07-06
2.84G / 07-06
93M / 07-06
338.3M / 07-06
1.38G / 07-26
488.3M / 07-16
109.8M / 06-03
142M / 01-08
1.2M / 11-23
548.8M / 04-13
1.6M / 04-13
1.48G / 03-18
646.6M / 03-03
133.7M / 03-03
110.5M / 09-05
33.4M / 09-05
325.8M / 08-12
60M / 04-29
254M / 04-25
659M / 04-23
1M / 12-26
253.4M / 12-08
253M / 12-08
1.19G / 11-16
369M / 09-22
181.5M / 09-22
201.2M / 09-05
488.3M / 07-16
248.9M / 12-08
248.9M / 12-08
100.6M / 03-06
148.9M / 03-06
1.12G / 07-06
1.25G / 07-06
126.7M / 02-04
1.76G / 09-22
1.92G / 04-17
201.5M / 04-13
7.31G / 07-01
94.3M / 07-06
2.48G / 07-06
7.63G / 07-06
1M / 07-06
778.1M / 07-06
561.8M / 07-11
72M / 07-06
548.7M / 07-06
1.00G / 07-06
9.13G / 07-06
126.2M / 07-06
72M / 07-06
105.1M / 07-06
132M / 07-06
132M / 07-06