Windbg分析dump崩溃

首先抓dump.在任务管理器->进程里面进行抓dump.

然后需要的原材料有dump、源码、pdb

  1. 打开windbg把源码路径和pdb路径添加进去。
  2. 需要打开的窗口包括线程窗口(Processes and Threads)、Calls窗口、Command窗口。
  3. 把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

 

  1. !analyze –v    通过这个命令,可以自动的分析出出错的代码段
  2. ~* kb         打印所有线程信息。结合线程窗口可以在Command窗口中看到各个可能出错的代码段。
  3. 快速查找可以打印完线程信息后寻找一下exception.或者是unhand这类信息。然后只能对照源码看。
  4. lmvm+模块名  查看版本或者看是否已经加载上相应exe或dll了。
  5. ~33s          切换线程,33为线程ID
  6. .reload /i    重新加载调试symbol

 

手动打断点命令:

抓dump:

传统意义上的用任务管理器抓取的dump有可能不能正确的抓到崩溃瞬间合适的dump.

用winDbg挂起进程运行,崩溃后,输入.dump /ma C:/dumps/myapp.dmp就可以获得此刻的dump.

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

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

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windbg是Windows平台上的一款强大的调试工具,可以用于分析dump文件。当一个程序崩溃或异常退出时,系统会生成一个dump文件,其中包含了程序在崩溃前的内存状态、寄存器的值以及调用栈等信息。通过分析dump文件,可以帮助我们确定程序崩溃的原因。 使用Windbg分析dump文件的步骤如下: 首先,打开Windbg并选择“File”菜单中的“Open Crash Dump”,然后选择要分析dump文件。打开dump文件后,Windbg会加载其中的调试信息,包括程序、模块、符号等。 在Windbg的命令窗口中,可以输入一系列的命令来分析dump文件。其中一些常用的命令如下: 1. "!analyze -v":分析dump文件并提供详细的分析报告,报告中包含了崩溃的原因和相关的线程堆栈信息。 2. "kb":显示当前线程的调用栈,可以根据调用栈信息来查找崩溃的位置。 3. "lm":显示加载的模块信息,可以查看程序中加载的模块和其对应的版本号。 4. ".exr -1":显示当前异常的记录,包括异常的类型和相关的寄存器的值。 5. ".reload /f":强制重新加载符号文件,以确保符号信息的准确性。 通过分析命令的执行结果,我们可以逐步追踪问题并找到程序崩溃的原因。在分析过程中,还可以使用其他的命令来查看内存的内容、寄存器的值以及线程的信息等。 总的来说,Windbg是一款功能强大的调试工具,通过分析dump文件可以帮助我们深入了解程序崩溃的原因,从而进行相应的调试和修复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值