Windbg分析Dump文件

1、下载ProcDump

打开windows命令行cmd,进入到包含procdunmp文件的路径下,对于32位系统打开procdump.exe,64位系统则打开procdump64.exe,执行以下命令

#-ma 抓取full dump
#-c 30代表cpu使用率应该在30%以上
#-s 1 这种情况持续1秒以上
#3 代表最多抓取3个dump文件
#9000代表线程id
procdump64 -ma -c 30 -s 1 -n 3 10728

输出以下内容,不要关闭命令行工具,procDump工具正在执行

2、下载WinDbg 

下载 Windows 调试工具 - WinDbg - Windows drivers | Microsoft Docs

对于电脑上没有microsoft store的用户,可以从 SDK 获取 Windows 调试工具 (WinDbg)

Windows SDK - Windows 应用开发

安装完成后,打开WinDbg工具,可以根据自己的程序选择64位或者32位的

路径:C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe

查看iis中运行的是否是32位还是64位的程序

如果iis的应用程序池的高级设置中“启动32位应用程序”的值为True,那么程序就是32位的,需要打开32位的WinDbg

3、配置WinDbg

配置Symbol File Path

srv*c:\symbols*http://msdl.microsoft.com/download/symbols

配置Source File Path

项目的bin目录(完整路径)

3.打开dump文件

配置SOS.DLL,输入一下命令

load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.DLL

分析高CPU

按以下顺序执行命令

#查看哪个线程占用cpu时间较长

!runaway

#跳转到对应的线程
~1s

#看看这个线程再干嘛 执行那些方法,优化这些方法
!clrstack

 

 

 

  • 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、付费专栏及课程。

余额充值