用windbg分析minidump

蓝屏总结(一) ——基本分析方法 目录 一、蓝屏造成原因 二、通常的排查步骤 三、Debug步骤 四、使用Driver Verifier进行排查 五、Debug示例 1、分析示例 1 2、分析示例 2 一、蓝屏造成原因 关于停止错误(蓝屏或者错误检查)没有简单的解释,包含很多因素,目前大量研究表明停止错误通常不是由微软Windows组件导致的,而是厂商的硬件驱动或者三方软件的驱动,包括声卡、无线网卡、安全程序等等。 crash的根因一般都是由三方驱动代码引起的,另外一小部分是硬件问... 阅读详情
 许多人可能经常遇见计算机频繁重新启动的问题,总是难于解决问题,最后只能重新安装操作系统.我介绍的这篇文章应该能解决许多人这样的痛苦.

  通常在荡机的瞬间,操作系统会形成一个存储器转储文件。 这个文件是当计算机死机的瞬间的内存的映像.该文件通常放置在系统目录下的minidum目录下.例如 C:/WINDOWS/Minidump/Mini082106-01.dmp. 所以对该文件的分析就能很快查找到问题的所在.

  这个文件打开看看将发现是一堆乱码.怎么分析该文件呢.通常我们使用 microsoft 提供的 WinDbg 工具来分析.这个工具可以从网站上下载得到.:http://www.microsoft.com/whdc/devtools/debugging/default.mspx

  当安装这个工具后,则就可以使用 WinDbg 来对 mimidump文件进行分析了.打开WinDbg ,首先要设置符号文件路径.符号文件是用来分析错误原因位置信息的文件.这个文件可以从  的网站随着WinDbg 一起下载,当然了比较大了.如果你不愿意下载,则可以设置连接到网站上的地址就可以了.我通常采用这种方法.

  设置符号文件的地址: 在WinDbg 的菜单中: File--> Symbol File Path 中,设置 :

SRV*DownstreamStore*http://msdl.microsoft.com/download/symbols ,如下图:查看更多精彩图片

然后就可以打开 minidump文件进行分析了 .  File--> Open Crash Dump , ,例如打开 C:/WINDOWS/Minidump/Mini082106-01.dmp .等待一会,根据前面设置的符号文件的地址,windbg 连接到 microsoft 的网站,得到符号信息.

这个时候 在WinDbg 下面的命令行运行: !analyze -v 将得到详细的信息. 例如我得到的信息如下:

查看更多精彩图片

 

  从这里我们可以知道当前错误是出在SkyProcs.sys这个文件上(ERROR: Module load completed but symbols could not be loaded for SkyProcs.sys ). 至于具体的原因就是RIVER_IRQL_NOT_LESS_OR_EQUAL ,这个错误一般是驱动程序中IRQL的问题.

  如果不懂这些技术问题,就查找到SkyProcs.sys这个文件,然后就知道了是哪个程序出现了问题,删除或者卸载掉该软件,一般情况下就能解决计算机频繁重新启动的问题.到现在看来这个问题的原因多数的安装的驱动程序出现了问题.

  附加:

  一般的情况下,计算机上都自动设置了minidump 的转储,假设没有,则按照下面的步骤进行设置,只有形成了MINIDUMP文件,才能进行分析.

  配置转储类型 ,要配置启动和故障恢复选项以使用小存储器转储文件,请按照下列步骤操作。

注意:由于 Microsoft Windows 有多个版本,因此下列步骤可能与在您的计算机上执行的步骤有所不同。如果是这样,请参阅您的产品文档来完成这些步骤。

1: 单击“开始”,指向“设置”,然后单击“控制面板”。

2: 双击“系统”。

3: 单击“高级”选项卡,然后单击“启动和故障恢复”下的“设置”。

4: 在“写入调试信息”列表中单击“小存储器转储 (64k)”。

要更改小存储器转储文件的文件夹位置,请在“转储文件”框中(或在“小转储目录”框中,具体取决于 Windows 的版本)键入新路径。

Microsoft (R) Windows Debugger Version 6.7.0005.1
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:/WINDOWS/Minidump/Mini070208-04.dmp]
Mini Kernel Dump File: Only registers and stack trace are available
Symbol search path is: SRV*DownstreamStore*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows XP Kernel Version 2600 (Service Pack 2) MP (2 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 2600.xpsp_sp2_gdr.070227-2254
Kernel base = 0x804d8000 PsLoadedModuleList = 0x805634a0
Debug session time: Wed Jul 2 06:22:29.015 2008 (GMT+8)
System Uptime: 0 days 0:12:21.733
Loading Kernel Symbols
............................................................................................................
Loading User Symbols
Loading unloaded module list
...........
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 1A, {41284, c8abd001, 4b5e, c0c00000}
Probably caused by : memory_corruption ( nt!MiLocateWsle+c0 )
Followup: MachineOwner
---------
1: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
MEMORY_MANAGEMENT (1a)
# Any other values for parameter 1 must be individually examined.
Arguments:
Arg1: 00041284, A PTE or the working set list is corrupt.
Arg2: c8abd001
Arg3: 00004b5e
Arg4: c0c00000
Debugging Details:
------------------
BUGCHECK_STR: 0x1a_41284
CUSTOMER_CRASH_COUNT: 4
DEFAULT_BUCKET_ID: COMMON_SYSTEM_FAULT
PROCESS_NAME: System
LAST_CONTROL_TRANSFER: from 8052abf2 to 8053838a
STACK_TEXT:
f7969bf0 8052abf2 0000001a 00041284 c8abd001 nt!KeBugCheckEx+0x1b
f7969c28 804f56b5 00004b5e 82f1f008 82fa55a8 nt!MiLocateWsle+0xc0
f7969c68 805709c2 c8abd000 82f1c170 00000000 nt!MmUnmapViewInSystemCache+0xc2
f7969c80 804f5638 82fa55a8 82f1f008 00000000 nt!CcUnmapVacb+0x2a
f7969cb0 804f5b44 00000000 00000000 82f1f06c nt!CcUnmapVacbArray+0xe5
f7969ccc 804f5ab6 82f1f008 80700a4c 82f1f008 nt!CcUnmapAndPurge+0x20
f7969cfc 804ee808 00000001 8055f690 82f059e0 nt!CcDeleteSharedCacheMap+0xc5
f7969d34 804e77c8 82fb6098 8056a4c0 82fb65b8 nt!CcWriteBehind+0x357
f7969d7c 804e33b5 82fb6098 00000000 82fb65b8 nt!CcWorkerThread+0x12f
f7969dac 80575128 82fb6098 00000000 00000000 nt!ExpWorkerThread+0xef
f7969ddc 804ed781 804e32f1 00000000 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
STACK_COMMAND: kb
FOLLOWUP_IP:
nt!MiLocateWsle+c0
8052abf2 006a00 add byte ptr [edx],ch
SYMBOL_STACK_INDEX: 1
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: nt
DEBUG_FLR_IMAGE_TIMESTAMP: 45e54690
SYMBOL_NAME: nt!MiLocateWsle+c0
IMAGE_NAME: memory_corruption
FAILURE_BUCKET_ID: 0x1a_41284_nt!MiLocateWsle+c0
BUCKET_ID: 0x1a_41284_nt!MiLocateWsle+c0
Followup: MachineOwner
---------
图解说明:如何用WinDbg打开并分析minidump 手把手带你用WinDbg加载并解读minidump文件,定位系统崩溃根源。从符号路径配置、dump文件加载到堆栈回溯,每一步都配图说明,助你快速掌握minidump分析核心技能。 阅读详情

相关推荐

使用WinDbg分析minidump:完整示例演示

通过实际案例展示如何使用WinDbg工具深入分析minidump文件,定位系统崩溃根源,帮助开发者快速掌握minidump调试技巧。

weixin_28968525的博客 779

使用Windbg分析dump文件的一般步骤及要点详解

通过一个问题实例详细讲解使用Windbg静态分析dump文件的完整过程。

dvlinker的技术专栏 4万+

minidump内存转储分析WinDbg平台操作全记录

深入解析minidump内存转储的分析流程,结合WinDbg平台详细展示调试步骤与技巧,帮助开发者精准定位系统崩溃根源,提升故障排查效率。

weixin_36074800的博客 309

【C++软件实战问题排查经验分享系列 ④】pdb符号文件 | dump文件分类与生成方法 | Windbg分析dump文件 | Windbg动态调试 | Windbg常用命令 总结

在开发调试C++软件的过程中,时常会使用Windbg分析排查软件运行过程中遇到的各种异常问题。本文对使用Windbg涉及到的pdb符号文件、dump文件分类与生成方法、Windbg分析dump文件、Windbg动态调试目标进程、Windbg常用命令等诸多相关内容进行详细的总结,并给出相关的实战分析实例,供大家借鉴或参考。

dvlinker的技术专栏 3万+

Windows内存管理---3

虚存页面的映射 有了对一个虚存空间的管理和对物理页面的分配管理。下一步自然就是建立二者之间的映射了。页面映射,指从虚存页面到物理页面的映射。多个虚存页面可以映射到同一个物理页面上(例如系统那里,SharedUserData就是内核和用户空间的一块虚拟空间映射到了同一物理页面上),但是同一时间内不可能会有多个物理页面对应于同一个空间的同一个虚存页面上。 虚存页面顾名思义是“虚”的,必须通过映射落实到...

For Geek 655

windbg抓一个windows蓝屏分析

设备一直以来挺稳定,但还是小概率事件意外出现某设备突然蓝屏了。查看windows事件查看器提示计算机已经从检测错误后重新启动。检测错误: 0x0000009f (0x0000000000000003, 0xffffad0f4edc7570, 0xfffff8046a09ec20, 0xffffad0f4ef318a0)。已将转储的数据保存在: C:\Windows\MEMORY.DMP。

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 1万+

使用 windbg 分析 minidump

转自:http://wcy234.blog.hexun.com/5506318_d.html 许多人可能经常遇见计算机频繁重新启动的问题,总是难于解决问题,最后只能重新安装操作系统.我介绍的这篇文章应该能解决许多人这样的痛苦.   通常在荡机的瞬间,操作系统会形成一个存储器转储文件。 这个文件是当计算机死机的瞬间的内存的映像.该文件通常放置在系统目录下的minidum目录下.例如

不积跬步,无以至千里;不积小流,无以成江海 2103

minidump实战案例:结合WinDbg分析访问违例问题

通过minidump文件结合WinDbg工具,深入分析程序崩溃时的访问违例问题,精准定位异常代码位置,提升调试效率,是minidump在实际故障排查中的典型应用。

weixin_31715353的博客 724

分析Access Violation:minidumpWinDbg实战演示

通过实际案例演示如何利用minidump文件结合WinDbg工具精准定位程序中的Access Violation问题,深入解析崩溃现场的调用栈与内存状态,帮助开发者快速排查难以复现的运行时异常。

weixin_42465332的博客 1084

windbg分析蓝屏文件minidump随记!!

windbg分析蓝屏文件minidump,以解决加载驱动蓝屏的相关问题随记。 案例1:能够正常进入操作系统,按照如下提示设置:    a. 右击“我的电脑”选择“属性”;    b. 在弹出的对话框中选择 “高级”-> “设置”; c.“自动重新启动”不选中 d.“将事件写入系统日志”选中 (为了方便配合系统日志分析) e..“写入调试信息”设置内存转储文件的类型, 共分:“小内存转

创造神话,实现梦想! 1万+

WinDbg结合MiniDump分析实用技巧

WinDbg打开MiniDump文件,快速还原崩溃现场,结合堆栈回溯和内存状态分析,精准识别访问违规、空指针等典型问题;熟练掌握符号路径配置与扩展命令,是Windows平台调试不可或缺的实战技能。

weixin_28922227的博客 819

使用WinDbg分析minidump崩溃日志:深度剖析步骤

手把手带你用WinDbg打开、加载符号、定位异常线程,精准解析minidump文件中的崩溃根源;结合真实调用栈与模块信息,快速锁定驱动或应用层问题,让minidump不再只是冰冷的内存快照。

weixin_31720909的博客 425

计算机总是重新启动怎么解决? 使用 windbg 分析 minidump

<br /><br />许多人可能经常遇见计算机频繁重新启动的问题,总是难于解决问题,最后只能重新安装操作系统.我介绍的这篇文章应该能解决许多人这样的痛苦.<br />  通常在荡机的瞬间,操作系统会形成一个存储器转储文件。 这个文件是当计算机死机的瞬间的内存的映像.该文件通常放置在系统目录下的minidum目录下.例如 C:/WINDOWS/Minidump/Mini082106-01.dmp. 所以对该文件的分析就能很快查找到问题的所在.<br />  这个文件打开看看将发现是一堆乱码.怎么分析该文件呢

figerDeng的专栏 1027

Windbg 分析MiniDump常用命令

peb:显示当前进程环境块(Process Environment Block)的内容。analyze -v:执行自动分析,提供崩溃转储的摘要信息和可能的原因。process:显示所有进程的列表,并提供每个进程的详细信息。thread:显示所有线程的列表,并提供每个线程的调用堆栈。.sympath:设置符号路径,以便正确加载调试符号文件。.reload:重新加载模块符号文件,以确保符号正确加载。heap:显示当前进程的堆信息。

weixin_46618348的博客 989

WinDbg符号配置详解:提升minidump分析效率

合理配置WinDbg符号路径能显著提升minidump文件的分析效率,精准定位崩溃根源。掌握符号服务器设置与缓存管理,让调试更高效。

weixin_29041443的博客 407

minidump结合WinDbg:高效分析程序崩溃的核心要点

minidump捕获崩溃现场,再借WinDbg精准解析堆栈与内存状态,是Windows平台调试的黄金组合。掌握符号路径配置、异常分析命令和线程上下文切换,能让崩溃诊断从小时级压缩到分钟级。minidump轻量且完整,特别适合线上环境复现与离线深度分析

weixin_35756130的博客 240
上一篇: VSS使用
下一篇: vs2005的添加卸载功能
baifer
博客等级 码龄19年 7粉丝 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值