dmp文件分析|Win10系统中dmp文件怎么分析

dmp文件分析|Win10系统中dmp文件怎么分析的第1张示图

Ⅰ dmp是什么文件

dmp文件是系统蓝屏自动保存下的日志。1先要下载安装debuggingtools这个工具,下载地址在工具/原料处有。2安装好了以后,在开始菜单下面的可以找得到一个【debuggingtoolsforwindows(x86)】文件夹下面就会出现如下图所示:windbg点击进入。3运行windbg4在windbg中点击【file】—–【opencrashmp】选择.dmp文件打开。5在打开文件的时候会提示会打开一个工作区域是否在开启。点击【yes】6打开了.dmp文件以后7windows发生蓝屏时,会自动生成.dmp文件,该文件是记录蓝屏生成代码和导致蓝屏出现的进程。查看.dmp文件可以分析为什么会蓝屏及解决蓝屏的方法。

Ⅱ 如何分析dmp文件

请不要盗用我的答案!!一号方案注意: 1.安全模式下,效果更好! 2. 以下所要使用的软件,都要安装或升级到最新版本,以保证使用的效果。 3. 不杀毒,直接使用以下方法也可以 。若效果不好,就在安全模式下用优质杀毒软件(如:卡巴斯基)杀一下,360安全卫士最好也用一下。 (用360安全卫士的“杀木马”—-“全盘扫描”。杀完重启。) 以下方法,不一定都要用,可以一个一个去试。有时,仅第一个就管用了。 一. 关闭浏览器,打开新版本360安全卫士的“系统修复”,扫描后,再点“一键修复” 。 再用360急救箱(360安全卫士的“功能大全”里有。若未安装360安全卫士,也可单另安装急救箱。) 二.用360安全卫士的“清理插件”进行扫描,扫除恶意插件后,进行清理。完后应重启。三.用windows清理助手(从网上下载)。扫描后(若扫出东西,都勾并清理),再用故障修复(全选),然后在桌面点鼠标右键刷新。安全模式下效果好。也可考虑用金山急救箱 四.下载使用“内存不能为read或written的修复工具”(视情况而定)。 强调——1.修复中,杀软或360有提示时,请点允许。操作中如提示重启就重启下电脑。2.效果不好时,看“注意”中的三点。 3. 完后,效果不好的话,也可考虑系统还原一下(选好还原点)。4. 还不行,就重安装程序。祝你成功 !

Ⅲ 蓝屏DMP文件分析工具Debugging Tools怎么用

首先需要获取Debugging Tools安装程序,可以在网络中搜索Debugging Tools下载安装,也可以去微软官方下载安装。Debugging Tools有32位和64位的版本,是根据Windows系统版本而定,安装后Windbg.exe为Debugging Tools的可执行程序,在高版本的系统中,注意打开时以管理员身份运行,才可以使用Debugging Tools打开DMP蓝屏文件。打开后,点击“File”菜单,Debugging Tools也有汉化中文版本,可以在网络中搜索下载汉化版本。选择“Open Crash Dump”即打开转储文件。找到系统盘下C:\Windows下或C:\Windows\minimp文件夹下的.dmp文件。若在这个文件下面找不到.dmp文件,则有可能没有写入或目录位置修改过,不是默认的。如图路径:我的电脑右键属性,进入系统-高级系统设置-启动和故障恢复设置中可以查看到。使用Debugging Tools打开蓝屏文件后,可以看到内容,这里内容需要对Windows系统很了解才能看明白。对于整句的英文,看不明白意思,可以复制到网络翻译中进行翻译成中文,若翻译不准确,也可以单个单词进行翻译。在故障检验分析Bugcheck Analysis中的Call Site中是调用点,即在蓝屏时Call Site调用点从上到下的过程。在这个过程中出现ERROR错误,Mole load completed but symbols could not be loaded for NETwew00.sys,NETwew00.sys文件不能被加载。这就是导致蓝屏的原因,在有些电脑上也有可能是“Probably caused by”后面出现蓝屏的原因。这时我们可以将这个NETwew00.sys在网络中搜索一下相关资料,找出现Windows蓝屏的原因,当然这个过程很可能不顺利,因为导致蓝屏的原因多种多样的。但至少在这个过程中也是一种学习。107Windows10蓝屏怎么办?怎么查win10蓝屏原因?38电脑蓝屏DMP文件在哪?DMP文件怎么打开?

Ⅳ win10不定期蓝屏,求大神分析dmp文件

尊敬的用户您好,根据您的描述,谢谢您对电信产品的关注。具体操作过程:控制面板——大图标——管理工具——事件查看器——系统(点击红色叉)蓝屏代码的各种含义:数 值 叙 述 0 0x0000 操作完成。 1 0x0001 不正确的函数。 2 0x0002 系统找不到指定的文件。 3 0x0003 系级找不到指定的路径。 4 0x0004 系统无法打开文件。 5 0x0005 拒绝存取。 6 0x0006 无效的代码。 7 0x0007 内存控制模块已损坏。 8 0x0008 内存空间不足,无法处理这个指令。 9 0x0009 内存控制模块地址无效。 10 0x000A 环境不正确。 11 0x000B 尝试载入一个格式错误的程序。 12 0x000C 存取码错误。 13 0x000D 资料错误。 14 0x000E 内存空间不够,无法完成这项操作。 15 0x000F 系统找不到指定的硬盘。 16 0x0010 无法移除目录。 17 0x0011 系统无法将文件移到其它的硬盘。 18 0x0012 没有任何文件。 19 0x0013 储存媒体为防写状态。 20 0x0014 系统找不到指定的装置。 21 0x0015 装置尚未就绪。 22 0x0016 装置无法识别指令。 23 0x0017 资料错误(cyclic rendancy check) 24 0x0018 程序发出一个长度错误的指令。 25 0x0019 磁盘机在磁盘找不到持定的磁区或磁轨。 26 0x001A 指定的磁盘或磁盘无法存取。 27 0x001B 磁盘机找不到要求的磁区。 28 0x001C 打印机没有纸。 29 0x001D 系统无法将资料写入指定的磁盘。 30 0x001E 系统无法读取指定的装置。 31 0x001F 连接到系统的某个装置没有作用。 32 0x0020 The process cannot access the file because it is being used byanother process. 33 0x0021 文件的一部份被锁定,现在无法存取。 34 0x0022 磁盘机的磁盘不正确。请将%2(Volume Serial Number: %3)插入磁盘 机%1。 36 0x0024 开启的分享文件数量太多。 38 0x0026 到达文件结尾。 39 0x0027 磁盘已满。 50 0x0032 不支持这种网络要求。 51 0x0033 远端电脑无法使用。 52 0x0034 网络名称重复。 53 0x0035 网络路径找不到。 54 0x0036 网络繁忙。 55 0x0037 The specified network resource or device is no longer available. 56 0x0038 The network BIOS command limit has been reached. 57 0x0039 网卡发生问题。 58 0x003A 指定的服务器无法执行要求的操作。 59 0x003B 网络发生意外的错误。 60 0x003C 远端配接卡不兼容。 61 0x003D 打印机队列已满。 62 0x003E 服务器的空间无法储存等候打印的文件。 63 0x003F 等候打印的文件已经删除。 64 0x0040 指定的网络名称无法使用。 65 0x0041 拒绝存取网络。 66 0x0042 网络资源类型错误。 67 0x0043 网络名称找不到。 68 0x0044 超过区域电脑网卡的名称限制。 69 0x0045 超过网络BIOS操作阶段的限制。 70 0x0046 远端服务器已经暂停或者正在起始中。 71 0x0047 由于连接数目已达上限,此时无法再连接到这台远端电脑。 72 0x0048 指定的打印机或磁盘装置已经暂停作用。 80 0x0050 文件已经存在。 82 0x0052 无法建立目录或文件。 83 0x0053 INT24失败 84 0x0054 处理这项要求的储存体无法使用。 85 0x0055 近端装置名称已经在使用中。 86 0x0056 指定的网络密码错误。 87 0x0057 参数错误。 88 0x0058 网络发生资料写入错误。 89 0x0059 此时时系统无法执行其它行程。 100 0x0064 无法建立其它的系统semaphore。 101 0x0065 属于其它行程专用的semaphore。 102 0x0066 semaphore已经设定,而且无法关闭。 103 0x0067 无法指定semaphore 。 104 0x0068 在岔断时间无法要求专用的semaphore。 105 0x0069 此 semaphore 先前的拥有权已经结束。 106 0x006A 请将磁盘插入 %1。 107 0x006B 因为代用的磁盘尚未插入,所以程序已经停止。 108 0x006C 磁盘正在使用中或被锁定。 109 0x006D Pipe 已经中止。 110 0x006E 系统无法开启指定的装置或档案。 111 0x006F 文件名太长。 112 0x0070 硬盘空间不足。 113 0x0071 没有可用的内部文件识别字。 114 0x0072 目标内部文件识别字不正确。 117 0x0075 由应用程序所执行的IOCTL呼叫不正确。 118 0x0076 写入验证参数值不正确。 119 0x0077 系统不支持所要求的指令。 120 0x0078 此项功能仅在 Win32 模式有效。 121 0x0079 semaphore 超过逾时期间。 122 0x007A 传到系统呼叫的资料区域太小。 123 0x007B 文件名、目录名和或储存体标签语法错误。 124 0x007C 系统呼叫层次不正确。 125 0x007D 磁盘没有设定标签。 126 0x007E 找不到指定的模组。 127 0x007F 找不到指定的程序。 128 0x0080 没有子行程可供等待。 129 0x0081 %1 这个应用程序无法在 Win32 模式下执行。 130 0x0082 Attempt to use a file handle to an open disk partition for anoperation other than raw disk I/O. 131 0x0083 尝试将文件指标移至文件开头之前。 132 0x0084 无法在指定的装置或文件,设定文件指标。 133 0x0085 JOIN 或 SUBST 指令 无法用于内含事先结合过的磁盘机。 134 0x0086 尝试在已经结合的磁盘机,使用 JOIN 或 SUBST 指令。 135 0x0087 尝试在已经替换的磁盘机,使 用 JOIN 或 SUBST 指令。 136 0x0088 系统尝试删除未连结过的磁盘机的连结关系。 137 0x0089 系统尝试删除未替换过的磁盘机的替换关系。 138 0x008A 系统尝试将磁盘机结合到已经结合过之磁盘机的目录。 139 0x008B 系统尝试将磁盘机替换成已经替换过之磁盘机的目录。 140 0x008C 系统尝试将磁盘机替换成已经替换过之磁盘机的目录。 141 0x008D 系统尝试将磁盘机 SUBST 成已结合的磁盘机目录。 142 0x008E 系统此刻无法执行 JOIN 或 SUBST。 143 0x008F 系统无法将磁盘机结合或替换同一磁盘机下目录。 144 0x0090 这个目录不是根目录的子目录。 145 0x0091 目录仍有资料。 146 0x0092 指定的路径已经被替换过。 147 0x0093 资源不足,无法处理这项指令。 148 0x0094 指定的路径这时候无法使用。 149 0x0095 尝试要结合或替换的磁盘机目录,是已经替换过的目标。 150 0x0096 CONFIG.SYS 文件未指定系统追踪资讯,或是追踪功能被取消。 151 0x0097 指定的 semaphore事件 DosMuxSemWait 数目不正确。 152 0x0098 DosMuxSemWait 没有执行/设定太多的 semaphore。 153 0x0099 DosMuxSemWait 清单不正确。 154 0x009A 你所输入的储存媒体标元长度限制。 155 0x009B 无法建立其它的执行绪。 156 0x009C 接收行程拒绝接受信号。 157 0x009D 区段已经被舍弃,无法被锁定。 158 0x009E 区段已经解除锁定。 159 0x009F 执行绪识别码的地址不正确。 160 0x00A0 传到 DosExecPgm 的引数字符串不正确。 161 0x00A1 指定的路径不正确。 162 0x00A2 信号等候处理。 164 0x00A4 系统无法建立执行绪。 167 0x00A7 无法锁定文件的部份范围。 170 0x00AA 所要求的资源正在使用中。 173 0x00AD 取消范围的锁定要求不明显。 174 0x00AE 文件系统不支持自动变更锁定类型。 180 0x00B4 系统发现不正确的区段号码。 182 0x00B6 操作系统无法执行 %1。 183 0x00B7 文件已经存在,无法建立同一文件。 186 0x00BA 传送的旗号错误。 187 0x00BB 指定的系统旗号找不到。 188 0x00BC 操作系统无法执行 %1。 189 0x00BD 操作系统无法执行 %1。 190 0x00BE 操作系统无法执行 %1。 191 0x00BF 无法在 Win32 模式下执行 %1。 192 0x00C0 操作系统无法执行 %1。 193 0x00C1 %1 不是正确的 Win32 应用程序。 194 0x00C2 操作系统无法执行 %1。 195 0x00C3 操作系统无法执行 %1。 196 0x00C4 操作系统无法执行这个应用程序。 197 0x00C5 操作系统目前无法执行这个应用程序。 198 0x00C6 操作系统无法执行 %1。 199 0x00C7 操作系统无法执行这个应用程序。 200 0x00C8 程序码的区段不可以大于或等于64KB。 201 0x00C9 操作系统无法执行 %1。 202 0x00CA 操作系统无法执行 %1。 203 0x00CB 系统找不到输入的环境选项。 205 0x00CD 在指令子目录下,没有任何行程有信号副处理程序。 206 0x00CE 文件名称或副文件名太长。 207 0x00CF ring 2 堆迭使用中。 208 0x00D0 输入的通用文件名字元 * 或 ? 不正确,或指定太多的通用文件名字元。 209 0x00D1 所传送的信号不正确。 210 0x00D2 无法设定信号处理程序。 212 0x00D4 区段被锁定,而且无法重新配置。 214 0x00D6 附加到此程序或动态连结模组的动态连结模组太多。 215 0x00D7 Can''t nest calls to LoadMole. 230 0x00E6 The pipe state is invalid. 231 0x00E7 所有的 pipe instances 都在忙碌中。 232 0x00E8 The pipe is being closed. 233 0x00E9 No process is on the other end of the pipe. 234 0x00EA 有更多可用的资料。 240 0x00F0 操作阶段被取消。 254 0x00FE 指定的延伸属性名称无效。 255 0x00FF 延伸的属性不一致。 259 0x0103 没有可用的资料。 266 0x010A 无法使用 Copy API。 267 0x010B 目录名称错误。 275 0x0113 延伸属性不适用于缓冲区。 276 0x0114 在外挂的文件系统上的延伸属性文件已经损坏。 277 0x0115 延伸属性表格档满。 278 0x0116 指定的延伸属性代码无效。 282 0x011A 外挂的这个文件系统不支持延伸属性。 288 0x0120 意图释放不属于叫用者的 mutex。 298 0x012A semaphore 传送次数过多。 299 0x012B 只完成 Read/WriteProcessMemory 的部份要求。 317 0x013D 系统找不到位于讯息文件%2中编号为0x%1的讯息。 487 0x01E7 尝试存取无效的地址。 534 0x0216 运算结果超过32位。 535 0x0217 信道的另一端有一个行程在接送资料。 536 0x0218 等候行程来开启信道的另一端。 994 0x03E2 存取延伸的属性被拒。 995 0x03E3 由于执行绪结束或应用程序要求,而异常终止 I/O操作。 996 0x03E4 重迭的 I/O 事件不是设定成通知状态。 997 0x03E5 正在处理重迭的 I/O 操作。 998 0x03E6 对记忆体位置的无效存取。 999 0x03E7 执行 inpage 操作发生错误。 1001 0x03E9 递归太深,堆迭溢出。(递归是什幺东西???????) 1002 0x03EA 视窗无法用来传送讯息。 1003 0x03EB 无法完成这项功能。 1004 0x03EC 旗号无效。 1005 0x03ED 储存媒体未含任何可辨识的文件系统。请确以载入所需的系统驱动 程序,而且该储存媒体并未损坏。 1006 0x03EE 储存该文件的外部媒体发出警告,表示该已开启文件已经无效。 1007 0x03EF 所要求的作业无法在全屏幕模式下执行。 1008 0x03F0 An attempt was made to reference a token that does not exist. 1009 0x03F1 组态系统登录数据库毁损。 1010 0x03F2 组态系统登录机码无效。 1011 0x03F3 无法开启组态系统登录机码。 1012 0x03F4 无法读取组态系统登录机码。 1013 0x03F5 无法写入组态系统登录机码。 1014 0x03F6 系统登录数据库中的一个档案必须使用记录或其它备份还原。 已经还原成功。 1015 0x03F7 系统登录毁损。其中某个档案毁损、或者该档案的 系统映对内存 内容毁损、会是档案无法复原。 1016 0x03F8 系统登录起始的 I/O 作业发生无法复原的错误。 系统登录无法读入、写出或更新,其中的一个档案 内含系统登录在内存中的内容。 1017 0x03F9 系统尝试将档案加载系统登录或将档案还原到系统登录中, 但是,指定档案的格式不是系统登录文件的格式。 1018 0x03FA 尝试在标示为删除的系统登录机码,执行不合法的操作。 1019 0x03FB 系统无法配置系统登录记录所需的空间。 1020 0x03FC 无法在已经有子机码或数值的系统登录机码建立符号连结。 1021 0x03FD 无法在临时机码下建立永久的子机码。 1022 0x03FE 变更要求的通知完成,但信息 并未透过呼叫者的缓冲区传回。呼叫者现在需要自行列举档案,找出变更的地方。 1051 0x041B 停止控制已经传送给其它服务 所依峙的一个服务。 1052 0x041C 要求的控制对此服务无效 1053 0x041D The service did not respond to the start or control request in a timely fashion. 1054 0x041E 无法建立服务的执行绪。 1055 0x041F 服务数据库被锁定。 1056 0x0420 这种服务已经在执行。 1057 0x0421 帐户名称错误或者不存在。 1058 0x0422 指定的服务暂停作用,无法激活。 1059 0x0423 指定循环服务从属关系。 1060 0x0424 指定的服务不是安装进来的服务。 1061 0x0425 该服务项目此时无法接收控制讯息。 1062 0x0426 服务尚未激活。 1063 0x0427 无法联机到服务控制程序。 1064 0x0428 处理控制要求时,发生意外状况。 1065 0x0429 指定的数据库不存在。 1066 0x042A 服务传回专属于服务的错误码。 1067 0x042B The process terminated unexpectedly. 1068 0x042C 从属服务或群组无法激活。 1069 0x042D 因为登入失败,所以没有激活服务。 1070 0x042E 在激活之后,服务在激活状态时当机。 1071 0x042F 指定服务数据库锁定无效。 1072 0x0430 指定的服务已经标示为删除。 1073 0x0431 指定的服务已经存在。 1074 0x0432 系统目前正以上一次执行成功的组态执行。 1075 0x0433 从属服务不存在,或已经标示为删除。 1076 0x0434 目前的激活已经接受上一次执行成功的 控制设定。 1077 0x0435 上一次激活之后,就没有再激活服务。 1078 0x0436 指定的名称已经用于服务名称或服务显示 名称。 1100 0x044C 已经到了磁带的最后。 1101 0x044D 到了档案标示。 1102 0x044E 遇到磁带的开头或分割区。 1103 0x044F 到了档案组的结尾。 1104 0x0450 磁带没有任何资料。 1105 0x0451 磁带无法制作分割区。 1106 0x0452 存取多重容体的新磁带时,发现目前区块大小错误。 1107 0x0453 加载磁带时,找不到磁带分割区信息。 1108 0x0454 无法锁住储存媒体退带功能。 1109 0x0455 无法解除加载储存媒体。 1110 0x0456 磁盘驱动器中的储存媒体已经变更。您可以在安徽电信网上营业厅选购电信手机,网厅办理合约机赠送高额话费,可以0元购机,非常优惠,目前多个品牌4G机型全面上市!

Ⅳ 如何用WinDbg分析MEMORY.DMP文件

在C++实际开发过程中,开发出来的程序,一般情况下由开发人员进行单元测试,然后移交给测试人员进行测试。在开发人员测试出现的bug,我们可以直接在本地进行调试。如果测试人员测试出崩溃级别的bug,如果我们需要调试往往借助于vs提供的Remote Debugger工具进行远程调试,然是当程序在用户手中出现崩溃此时我们可以采用Remote Debugger进行调试,但是如果此时开发人员无法直接去用户现场调试,此时就需要用户生成DMP文件,以便开发人员使用DMP文件进行分析。本文主要介绍C++开发过程中出现程序崩溃后,如何进行分析定位bug(基于xp系统)。一、DMP文件获取设置(1)在运行窗口中输入 drwtsn32 -i ,并且点击确定WinDbg分析DMP文件方法完全攻略(2)在(1)确定后弹出如下对话框WinDbg分析DMP文件方法完全攻略(3)在(2)弹出的确定框后点击确定按钮完成,将Dr.Watson设置为默认应用程序调试程序。Dr.Watson系统自带的程序。(4)再次在运行窗口中输入:drwtsn32,如下图:WinDbg分析DMP文件方法完全攻略(5)点击确定按钮,在弹出的对话框中按照下列方式设置WinDbg分析DMP文件方法完全攻略(6) 点击确定按钮完成DMP文件设置。二、关闭Dr.Watson方法(1)打开注册表(2)在注册表中进入主键[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AeDebug],然后将“AUTO”键值设置为0如下图:WinDbg分析DMP文件方法完全攻略三、Windbg下载,下载完成后安装四、DMP文件获取(1) 用vs2010创建一个基于win32的程序,其源码如下:WinDbg分析DMP文件方法完全攻略(2)我们知道在学习C++中整数不能跟0进行除运算,否则会引起程序崩溃。而(1)中就是编写能触发0的异常,导致程序结束运行的程序。编译(1)中的程序,结果如下:WinDbg分析DMP文件方法完全攻略(3)运行(2)中test.exe程序 ,程序崩溃。如下图:WinDbg分析DMP文件方法完全攻略(4) 按照《一、DMP文件获取设置》步骤实现Dr.Watson设置为默认应用程序调试程序。(5)再次运行运行(2)中test.exe程序 如下图:WinDbg分析DMP文件方法完全攻略点击确定完成dmp文件的生成。(6)打开在(4)中设置dmp文件路径。(本例中默认地址为:C:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson)如下图:WinDbg分析DMP文件方法完全攻略其中user.dmp就是我们需要的dmp文件。五、分析《四、DMP文件获取》中获取的DMP文件。

Ⅵ Win10系统中dmp文件怎么分析

1、首选需要安装【Debugging Tools】程序2、在【Windbg.exe】上单击右键,选择【以管理员身份运行】;3、点击“回File”菜单答,选择“Open Crash Dump…”;4、选中C:\Windows\minimp文件夹下的.dmp文件 点击打开即可查看该文件的详细内容了,但需要看的懂还是需要懂得一定的Windows 知识才行。

Ⅶ 怎样解析mp文件

1、 打开Dump格式文件打开WinDbg,通过菜单[File] à [Open Crash mp] 选择mp文件打开,也可通过CMD打开Dos命令窗口,切换到WinDbg所在目录,利用命令:WinDbg –z “D:/Lines2009-7-25-22-20-33-900.dmp”-z表示路径图1.1 利用WinDbg打开mp文件本文编写了一个简单能产生除数为0异常的程序,让其运行,产生崩溃,通过drwtsn产生dmp文件,然后通过windbg分析dmp文件,定位程序bug。目的:学习windbg基本功能使用。程序源代码:void Crash(void){ int i = 1; int j = 0; i /= j; }void main(void){ Crash(); } 编译环境:vc++6.0编译器设置:这一步设置,要求对release版本不使用优化,如果使用优化,上面源代码中Crash(void)函数将不被汇编。这一步设置,产生release版本的调试符号表,为后续定位错误准备。

Ⅷ 蓝屏dmp文件怎么分析

可以通过系统日志查看器来分析蓝屏原因。或蓝屏时的蓝屏代码,如007b代表内存故障。

Ⅸ 如何分析堆栈出错的 dmp 文件

分析程序出错生成的 dmp 文件是事后分析的主要工作。第一步往往都是使用 WinDbg 自带的 !analyze -v 命令先进行初步分析,得到出错地址和出错堆栈后再进行详细分析。 介绍一个方法,当 !analyze -v 不好使的时候应该怎么得到出错地址和出错堆栈。 int sum(int x, int y) { __asm mov ebp, 0 return (x + y); } int sumstub(int x, int y) { int tmp = 0; printf("enter fun() …\n"); tmp = sum(x, y); printf("leave fun() …\n"); return tmp; } int main(int argc, char* argv[]) { printf("enter main() …\n"); printf("sum = %d\n", sumstub(0x1234, 0x5678)); printf("leave main() …\n"); return 0; }示例程序比较简单,在 sum 函数里面会把 ebp 清零,下面取 x 或者 y 的值时就会出错。用 WinDbg 打开出错得到的 dmp 文件,先用 !analyze -v 分析,结果如下: 0:000> !analyze -v ******************************************************************************* * * * Exception Analysis * * * ******************************************************************************* *** WARNING: Unable to verify checksum for Dump01.exe *** ERROR: Symbol file could not be found. Defaulted to export symbols for lpk.dll – *** ERROR: Symbol file could not be found. Defaulted to export symbols for Sysfer.dll – *** ERROR: Symbol file could not be found. Defaulted to export symbols for usp10.dll – *** ERROR: Symbol file could not be found. Defaulted to export symbols for imm32.dll – *** ERROR: Symbol file could not be found. Defaulted to export symbols for apphelp.dll – *** ERROR: Symbol file could not be found. Defaulted to export symbols for version.dll – *** ERROR: Symbol file could not be found. Defaulted to export symbols for advapi32.dll – *** ERROR: Symbol file could not be found. Defaulted to export symbols for shlwapi.dll – FAULTING_IP: +0 00000000 ?? ??? EXCEPTION_RECORD: ffffffff — (.exr 0xffffffffffffffff) ExceptionAddress: 00000000 ExceptionCode: 80000007 (Wake debugger) ExceptionFlags: 00000000 NumberParameters: 0 BUGCHECK_STR: 80000007 PROCESS_NAME: Dump01.exe ERROR_CODE: (NTSTATUS) 0x80000007 – { NTGLOBALFLAG: 0 APPLICATION_VERIFIER_FLAGS: 0 DERIVED_WAIT_CHAIN: Dl Eid Cid WaitType — — ——- ————————– 0 62c.928 Unknown WAIT_CHAIN_COMMAND: ~0s;k;; BLOCKING_THREAD: 00000928 DEFAULT_BUCKET_ID: APPLICATION_HANG_HungIn_ExceptionHandler PRIMARY_PROBLEM_CLASS: APPLICATION_HANG_HungIn_ExceptionHandler LAST_CONTROL_TRANSFER: from 7c92e9ab to 7c92eb94 FAULTING_THREAD: 00000928 STACK_TEXT: 0012f3b8 7c92e9ab 7c86372c 00000002 0012f53c ntdll!KiFastSystemCallRet 0012f3bc 7c86372c 00000002 0012f53c 00000001 ntdll!ZwWaitForMultipleObjects+0xc 0012fb38 00401dda 0012fb74 0012ffb0 0012ffc0 kernel32!UnhandledExceptionFilter+0x8e4 0012fb48 00401198 c0000005 0012fb74 0040261b Dump01!_XcptFilter+0x13e 0012ffc0 7c816fd7 011dd65c 011dd664 7ffd6000 Dump01!mainCRTStartup+0xd1 0012fff0 00000000 004010c7 00000000 00000000 kernel32!BaseProcessStart+0x23FOLLOWUP_IP: Dump01!_XcptFilter+13e 00401dda 5b pop ebx SYMBOL_STACK_INDEX: 3 SYMBOL_NAME: Dump01!_XcptFilter+13e FOLLOWUP_NAME: MachineOwner MODULE_NAME: Dump01 IMAGE_NAME: Dump01.exe DEBUG_FLR_IMAGE_TIMESTAMP: 46de4ed1 STACK_COMMAND: ~0s ; kb FAILURE_BUCKET_ID: 80000007_Dump01!_XcptFilter+13e BUCKET_ID: 80000007_Dump01!_XcptFilter+13e Followup: MachineOwner ———分析得到的出错地址为 0,堆栈也在内核里面。很明显这次 !analyze -v 命令出问题了,需要手动分析才能得到想要的信息。 0:000> ~*kv . 0 Id: 62c.928 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr Args to Child 0012f3b8 7c92e9ab 7c86372c 00000002 0012f53c ntdll!KiFastSystemCallRet (FPO: [0,0,0]) 0012f3bc 7c86372c 00000002 0012f53c 00000001 ntdll!ZwWaitForMultipleObjects+0xc (FPO: [5,0,0]) 0012fb38 00401dda 0012fb74 0012ffb0 0012ffc0 kernel32!UnhandledExceptionFilter+0x8e4 (FPO: [Non-Fpo]) 0012fb48 00401198 c0000005 0012fb74 0040261b Dump01!_XcptFilter+0x13e 0012ffc0 7c816fd7 011dd65c 011dd664 7ffd6000 Dump01!mainCRTStartup+0xd1 0012fff0 00000000 004010c7 00000000 00000000 kernel32!BaseProcessStart+0x23 (FPO: [Non-Fpo]) 0:000> !teb TEB at 7ffdf000 ExceptionList: 0012fb28 StackBase: 00130000 StackLimit: 0012a000 SubSystemTib: 00000000 FiberData: 00001e00 ArbitraryUserPointer: 00000000 Self: 7ffdf000 EnvironmentPointer: 00000000 ClientId: 0000062c . 00000928 RpcHandle: 00000000 Tls Storage: 00000000 PEB Address: 7ffd6000 LastErrorValue: 0 LastStatusValue: 103 Count Owned Locks: 0 HardErrorMode: 0先查看所有线程的堆栈信息,然后找出比较像出了问题的线程。本次示例只有一个线程,所以肯定是该线程出错。然后显示出错线程的 TEB 信息。 0:000> dps 0x0012a000 0x00130000根据堆栈的位置和大小,显示堆栈的所有内容。根据 Windows 异常处理流程可知,所有没被调试器处理的异常最终都会转到 ntdll!KiUserExceptionDispatcher 函数查找 SEH 异常处理例程来处理异常。所以在显示的堆栈信息中查找 ntdll!KiUserExceptionDispatcher 字符串。 0012fc50 00000000 0012fc54 7c92eafa ntdll!KiUserExceptionDispatcher+0xe 0012fc58 00000000 0012fc5c 0012fc84再根据 KiUserExceptionDispatcher 函数的原型得到本次异常发生时保存的 CONTEXT 结构信息。 ; VOID ; KiUserExceptionDispatcher ( ; IN PEXCEPTION_RECORD ExceptionRecord, ; IN PCONTEXT ContextRecord ; )第二个参数指向 CONTEXT 结构,利用 WinDbg 的 .cxr 命令显示/切换 CONTEXT 结构。 0:000> .cxr 0x0012fc84 eax=00005678 ebx=7ffd6000 ecx=00001234 edx=7c92eb94 esi=011dd664 edi=011dd65c eip=0040100b esp=0012ff50 ebp=00000000 iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 Dump01!sum+0xb: 0040100b 8b4508 mov eax,dword ptr [ebp+8] ss:0023:00000008=???????? 0:000> kv *** Stack trace for last set context – .thread/.cxr resets it ChildEBP RetAddr Args to Child 00000000 00000000 00000000 00000000 00000000 Dump01!sum+0xb (CONV: cdecl) [E:\Works\Dump01\Dump01.cpp @ 10]现在已经找到出错地址为 0x0040100b,下面恢复正确的出错堆栈。 0:000> ?? sizeof(ntdll!_CONTEXT) unsigned int 0x2cc 0:000> ? 0x0012fc84 + 0x2cc Evaluate expression: 1245008 = 0012ff50计算可知,出错前的堆栈位置在 0x0012ff50 处。 0:000> ub 0x0040100b L 6 Dump01!sum [E:\Works\Dump01\Dump01.cpp @ 7]: 00401000 55 push ebp 00401001 8bec mov ebp,esp 00401003 53 push ebx 00401004 56 push esi 00401005 57 push edi 00401006 bd00000000 mov ebp,0 0:000> dps 0x0012ff50 L 0x10 0012ff50 011dd65c 0012ff54 011dd664 0012ff58 7ffd6000 0012ff5c 0012ff70 0012ff60 0040103b Dump01!sumstub+0x25 [E:\Works\Dump01\Dump01.cpp @ 19] 0012ff64 00001234 0012ff68 00005678 0012ff6c 00000000 0012ff70 0012ff80 0012ff74 00401074 Dump01!main+0x1f [E:\Works\Dump01\Dump01.cpp @ 30] 0012ff78 00001234 0012ff7c 00005678 0012ff80 0012ffc0 0012ff84 0040117b Dump01!mainCRTStartup+0xb4 0012ff88 00000001 0012ff8c 00520eb0 0:000> r Last set context: eax=00005678 ebx=7ffd6000 ecx=00001234 edx=7c92eb94 esi=011dd664 edi=011dd65c eip=0040100b esp=0012ff50 ebp=00000000 iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 Dump01!sum+0xb: 0040100b 8b4508 mov eax,dword ptr [ebp+8] ss:0023:00000008=????????反汇编出错地址前的几条指令,可以知道出错原因是 0x00401006 处的指令导致 ebp 被赋零,所以接下来取参数的指令出错。再根据堆栈信息,出错前往堆栈中压入了 ebx/esi/edi 几个寄存器的值,对比 0x0012ff50 处的堆栈,可知 0x0012ff50 正好是程序出错前的堆栈地址。同时还可以得到保存在堆栈上的 ebp 的值,从而得到正确的出错堆栈。 0:000> kv L = 0x0012ff5c ChildEBP RetAddr Args to Child 0012ff5c 0040103b 00001234 00005678 00000000 Dump01!sum+0xb (CONV: cdecl) 0012ff70 00401074 00001234 00005678 0012ffc0 Dump01!sumstub+0x25 (CONV: cdecl) 0012ff80 0040117b 00000001 00520eb0 00520e20 Dump01!main+0x1f (CONV: cdecl) 0012ffc0 7c816fd7 011dd65c 011dd664 7ffd6000 Dump01!mainCRTStartup+0xb4 0012fff0 00000000 004010c7 00000000 00000000 kernel32!BaseProcessStart+0x23 (FPO: [Non-Fpo])从这个堆栈来看,起始地址从 kernel32!BaseProcessStart 开始,结束地址也正好在出错地址处,应该是正确的出错堆栈。

Ⅹ 机器蓝屏,如何自我进行分析dmp文件

最近改动什么东西了吗,例如驱动程序,或者安装什么软件了。1、重启电脑,按F8,出现选择菜单。2、选择最后一次正确配置,安全模式都试下,如果能进入安全模式可以卸载最近安装的软件或者驱动。3、如果可以进入安全模式,可以通过腾讯电脑管家修复下蓝屏。a、点击打开腾讯电脑管家——电脑诊所b、在电脑诊所中搜索“电脑蓝屏”。搜索后就会出现解决方法。4、如果还是这样,只能重做系统了。

未经允许不得转载:山九号 » dmp文件分析|Win10系统中dmp文件怎么分析

赞 (0)