利用 windbg 或 adplus 生成 dump 文件

强力 调试 工具 windbg:

1. 到windbg官网下载安装文件 http://www.windbg.org/

2.选择下载32bit or 64bit 版本:

我的经验:我们的编译机环境和运行机环境一致,都为winserver2003 sp2 64bit,因为是在运行机上安装,所以下载64bit版本

详见:Choosing the 32-Bit or 64-Bit Debugging Tools

3.下载windbg符号库文件(若机子有联网,可不用下载符号库)

根据环境下载,详见:Download Windows Symbol Packages

4.安装windbg和符号库(若机子有联网,可不用安装符号库)

5.设置windbg符号库路径,file->set symbol path

有联网的机子可使用微软提供网络符号库:SRV*e:/temp/*http://msdl.microsoft.com/download/symbols  其中e:/temp为本地的缓存目录

无联网的机子使用本地安装的符号路径库:例如 D:\Symbol

6.关闭windbg再打开,确认file->set symbol path 下路径以保存

 

7.attach程序

(1)file->attach to a process:根据名字或id选进程

(2)attach后进程会被中断挂起,先 F5 或 g指令 继续执行

(3)当进程触发异常时,信息会被windbg截获,并在界面上输出 RaiseException 之类的,用指令: .dump /ma c:\demp\test.dmp 生成dump文件

  其中 /ma 是一个选项,表示dump文件类型

  /m:注解: 缺省选项,生成标准的minidump, 转储文件通常较小,便于在网络上通过邮件或其他方式传输。 这种文件的信息量较少,只包含系统信息、加载的模 块(DLL)信息、 进程信息和线程信息。

  /ma:注解: 带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境), 推荐使用这中dump。

  /mFhutwd:注解:带有数据段、非共享的读/写内存页和其他有用的信息的minidump。包含了通过minidump能够得到的最多的信息。是一种折中方案。

(4)在截获异常时,也可以查看进程当时的状态,如函数调用栈,行数,临时变量等

(5)调试器分离:debug->detach debuggee

 

adplus.exe 守护进程工具

adplus为 windbg 的附带工具,相当于守护进程的作用,可用于守护一个或多个同名进程,当进程发生异常时,会自动保存dump文件到相应目录,相比windbg简化了几步操作,配置 bat 使用更是方便快捷

(1)找到目录:adplus.exe 是在windbg的目录下,win32为路径为 C:\Program Files\Windows Kits\8.0\Debuggers\x86

(2)指令:adplus -crash -po test.exe -o c:\dumps

  其中 test.exe 为守护对象进程名, c:\dumps 为最终dump文件生成目录

(3)对adplus 的指令有更进一步的需求的,可查看同目录下帮助文档 adplus.doc

转载于:https://www.cnblogs.com/johnice/archive/2013/01/17/2864205.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值