获取和分析Dump的几种工具简介

article/2025/8/31 16:19:25

最近在进一步学习support技能的时候,了解到分析Dump的重要性,经过学习,做一些笔记。

一、什么是Dump文件。
Dump文件时进程的内存镜像。可以把程序的执行状态保存到Dump文件中。Dump文件分为内核模式Dump和用户模式Dump。其中内核模式Dump是操作系统创建的崩溃转储,例如蓝屏Dump。而在我们调试或Troubleshooting过程中使用的Dump是用户模式Dump,又分为Full Dump和Mini Dump。Full Dump包含了某个进程完整的地址空间数据,以及许多用于调试的信息。而Mini Dump根据需要可以包含不同的信息,有的可能只包含某个县城和部分模块的信息。

二、创建Dump的方法和工具
1.任务管理器。
在Windows Server 2008以上版本的系统中,可以利用任务管理器直接创建Dump。方法是打开任务管理器->右键目标进程->Create Dump File,就可以创建出Dump文件了。这个方法不常用,据说因为会涉及到32位和64位环境对内存寻址的影响。

在这里插入图片描述

2.ProcDump.exe
ProcDump是一个可以用于诊断多种问题的命令行工具,它可以在没有任何异常发生的时候, 捕获Dump用于分析。它最大的特点是可以针对CPU使用率来筛选捕获Dump,这个功能在处理间歇性问题时有奇效。比如系统或App没有发生crash或hang,但是在某个阶段中CPU占用率超高,这个时候就可以用ProcDump来设置条件捕获Dump用于找出哪个进程是造成CPU占用率高的原因。

ProcDump的下载地址为ProcDump下载及介绍 ,在同一页中还有对于ProcDump的命令的详细说明。

如图是一个实际使用的例子,在cmd窗口,进入ProcDump.exe文件夹,输入命令procdump.exe -ma 6612, 就可以获取Process ID为6612的Full Dump文件。
在这里插入图片描述

再例如命令:
procdump -ma -c 50 -s 3 -n 2 5844(Process Name or PID)
-ma 生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息.
-c 在CPU使用率到达这个阀值的时候, 生成dump文件.
-s CPU阀值必须持续多少秒才抓取dump文件.
-n 在该工具退出之前要抓取多少个dump文件.

对于ProcDump的进一步了解可以阅读下载页面上的介绍,也可以参照介绍一个好用的抓取dump的工具-ProcDump

3.DebugDiag 2 collection
这是Debug Diagnostics Tools 2中的收集Dump的工具,这个Tools里面还有DebugDiag 2 analysis可以用于Dump文件的分析,我们在后面会提到。

DebugDiag下载地址为DebugDiag 下载。它可以在App发生Crash或Hang时,自动转存Dump文件用于分析。DebugDiag collection的使用是通过设置rule来自动抓取Dump文件。也可以手动抓取Process的Dump文件。其具体操作可以参照DebugDiag简介

三、Dump文件分析工具
1.DebugDiag 2 analysis。这个就是上文中提到的Debug Diagnostics Tools 2 中的一部分,用于分析Dump。这个工具操作起来比较傻瓜式,不许要过多输入命令,只需要将Dump文件导入就会自动出现分析结果。

打开Debugdiag工具,在Tools->Options and Settings->Folders and Search Paths->Symbol Search Path For Analysis里填入:
SRVf:\localsymbolshttp://msdl.microsoft.com/download/symbols
其中f:\localsymbols可以用硬盘中的目录替代,http://msdl.microsoft.com/download/symbols是微软公用symbol的URL,不用改变。

在Advanced Analysis页中,选择Crash/Hang Analyzers,并点击Add Files…按钮选择生成出的dump文件(后缀名为.dmp)。Debugdiag会因此分析dump文件并产生报告。

2.WinDbg
WinDbg也是微软公司的用于软件开发调试的工具,在分析Dump文件领域受到广泛的使用。其下载地址为官方下载地址,其是一个SDK中的一个组成部分,也可以百度之进行单独下载。

WinDbg下载后应该是一个msi文件,在win7版本以上操作系统中可以直接双击安装。安装后在开始菜单中就可以选择WinDbg使用了。
在这里插入图片描述

在使用WinDbg时第一步需要做的就是设置符号文件的位置。符号路径设置:
[File]-[Symbol File Path]或直接快捷键Ctrl+S在弹出的窗口中输入你的符号路径,路径的格式只要符合Windows操作系统路径格式即可,路径可以多个,中间以分号间隔,d:\symbols\win2k3_en;
Windbg可以自动到Microsoft的服务器上下载符号表文件(.dbg或.pdb,有时DLL和EXE也会下载),只要在符合表路径里做如下设置:srvd:\symbolslocalhttp://msdl.microsoft.com/download/symbols,这样如果相关符号表在d:\symbolslocal目录没有找到的话,Windbg会自动在Microsoft的Symbol Servers上下载。

如果你是调试自己的应用程序的话,建议你将自己应用程序的*.pdb文件的路径放在前面这样对Windbg来说查找起来比较快。如:在windbg的file/symbol file path对话框里输入以下文字,以便自动加载和下载符号C:\WINDOWS\Symbols;d:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\symbols;.sympath SRVd:\localsymbolshttp://msdl.microsoft.com/download/symbols

更多关于安装和配置WinDbg的symbol可以参考链接。

在命令行中配置好symbol之后,需要用到!sym noisy和.reload命令
在这里插入图片描述
然后就可以根据需求在菜单中选择需要进行的操作了
在这里插入图片描述
由于WinDbg相比于DebugDiag而言没有那么一键操作,因此还需要用到命令行来进行分析,主要的命令是!analyze -v用于自动分析指令。此外还有许多命令,需要在以后的学习中进一步掌握。可以参考的资料有windbg分析dump操作流程以及使用Windbg解析dump文件


http://chatgpt.dhexx.cn/article/jqm1u9vv.shtml

相关文章

JVM-通过MAT工具对dump文件进行分析

文章目录 MAT工具介绍下载安装使用OverviewHistogramDominator_TreeOQLThread_OverviewLeak Suspects MAT工具介绍 MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内…

错误号码2058:Plugin caching sha2_password could not be loaded

安装SQLyog之后,新建接口,输入密码,点击连接,发现出现了如下的错误: 1.错误的原因 SQLyog加密方式出现了错误,这时由于 插件缓存——sha2_密码无法进行加载所导致的。 2.解决方法 在开始菜单中输入命令…

2023/06/28

文章目录 1.export和export default的区别2.npm和cnpm的区别3.npm run dev/serve的区别4.slice、splice和split的区别 1.export和export default的区别 模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输…

02.07 SQLyog连接MySQL数据库时报2058错误(转载)

使用SQLyog连接MySQL时报了这样一个错 “错误号码2058,Plugin caching——sha2_passward could not be loaded:******** ”(乱码) 将报错信息翻译:“插件缓存——sha2_密码无法进行加载”,这是由于你的SQLyog mysql 密码加密方法变了&#…

【C++】2058:【例3.10】简单计算器(信息学奥赛)

好了,今天的内容就是有简单计算器了,内容的详细意思也就是一个最简单的计算器支持,-,*,/四种运算然后根据输入输出结果。(博主正在冲200粉丝,喜欢的赶紧关注!!&#xff0…

【MySQL2058】MySQL远程连接错误码2058

Docker安装的MySQL,突然服务器登录正常,但是使用SQLyog登录报异常: MySQL错误号码 2058上网上巴拉巴拉半天,各种说法都有,最后综合网上各种教程方案,解决了自己的问题,最后将自己的解决方案罗列…

解决SQLyog连接MySQL出现2058错误

解决SQLyog连接MySQL出现2058错误 1、确定你的mysql命令能运行,像下面这样: 2、如果出现这种情况: 解决方法一: 配置系统环境变量path的值,将安装MySQL路径下的bin路径:MySQL安装目录\bin,配置…

SQLyog连接数据库报错2058

命令符界面登录MySQL然后输入命令 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 新密码; 修改密码的加密方式即可。

使用sqlyog连接数据库时出现错误(2058)解决方法

出现这个原因是MySQL8之前的版本中加密规则是mysql_native_password,而在MySQL8之后,加密规则 是caching_sha2_password。解决问题方法有两种; (1)第一种是升级图形界面工具版本 (2)第二种是把M…

SQLyog出现2058错误的解决方法

① WinR打开终端,输入cmd ②输入 mysql -u root -p 然后输入密码 (root) ③依次执行以下语句 ALTER USER’root’‘localhost’ IDENTIFIED BY ‘root’ PASSWORD EXPIRE NEVER; #修改加密规则 ALTER USER’root’‘localhost’ IDENTIFIED…

使用sqlyog连接mysql时出现错误号码2058的解决方法

1、使用命令行(winR --> cmd)登录mysql,需要输入密码;若出现如下界面,登录成功。 2、输入 use mysql;(分号要有) 3、输入 select user,host from user; 出现如下界面。 4、从上…

SQLyog连接MySQL8.0.24远程服务器 ,报错:2058的解决方法

写在前面: 我热爱技术,热爱分享,热爱生活, 我始终相信:技术是开源的,知识是共享的! 博客里面的内容大部分均为原创,是自己日常的学习记录和总结,便于自己在后面的时间里回…

sqlyog连接mysql错误码2058

一、⾸先保证你的MySQL数据库安装成功 cmd命令下mysql -u root -p 连接出错如上,原因是加密⽅式变了,现在是root的授权没刷新,我们重置⼀下密码。sqlyog配置新连接报错:错误号码2058,是因为mysql密码加密⽅法变了。 …

SQLyog连接mysql8.0时报错(错误号码2058)

本文将详细说明解决SQLyog连接mysql8.0时,SQLyog Ultimate显示报错信息并附带乱码:“错误号码2058,Plugin caching——sha2_passward could not be loaded:******** ”(最后一段信息是乱码)。 如下图所示: 将报错信息翻译过来就是…

SQLyog连接MySQL时出现2058错误解决方法

解决方案 第一步 WinR→cmd打开命令提示符, 输入以下命令:mysql -u root -p 1.1 提示Enter password,输入密码即可 1.2 如果提示“mysql不是内部或外部命令,也不是可运行的外部程序或批处理文件。” 如下图 解决此错误有两种…

Mysql出现问题:ERROR 2058: Plugin caching_sha2_passward could not be loaded解决方案

回城传送–》《数据库问题解决方案》 ❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主🏆,51CTO专家博主🏆 ❤️技术活,该赏 ❤️点赞 👍 收藏 ⭐再看,养成…

mysql出现2058,连接MySQL报“Error No.2058 Plugin caching_sha2_password could not be loaded”

问题重现 使用sqlyog连接linux系统下docker中的mysql8.0.11时报错plugin caching_sha2_password could not be loaded 问题原因 MySQL8.0新版默认使用caching_sha2_password作为身份验证插件,而旧版是使用mysql_native_password 而sqlyog默认是使用mysql_native_…

MySql8.0版本连接sqlyog时出现错误号码2058 和1045错误

错误号码2058乱码 在下载完MySQL8.0.31和sqlyog后,尝试用sqlyog连接数据库 出现了错误号码2058 Plugin caching _sha2_password could not be loaded:乱码问题 原因分析: 出现这个原因是Mysql之前的版本中加密规则是mysqlnative_password&#xff0c…

sqlyog错误号码2058解决方式

新建连接报错,错误号码2058 windows系统打开cmd命令行窗口,输入mysql -uroot -p 输入密码,登录mysql,再输入下面这行代码,password替换成你的密码。 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_passwo…

【SQLyog错误号码2058解决办法】

当你遇到下图这个错误时,是由于SQLyog在8.0以上版本采用了新的加密方式。 解决办法: win R打开 , 输入cmd,打开命令行窗口, 然后连接你的SQLyog版本的服务器, mysql -uroot -P3306 -p注意:…