




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
如何读取 Windows 为进行调试而创建的小存储器转储文件概要本文分步介绍了如何检查小存储器转储文件。使用该文件,可以确定计算机停止响应的原因。小存储器转储文件小存储器转储文件记录可帮助确定计算机为什么意外停止的最小的有用信息集。此选项要求启动卷上有一个至少为 2 MB 的页面文件。在运行 Microsoft Windows 2000 或更高版本的计算机上,计算机每次意外停止时 Windows 都会新建一个文件。这些文件的历史记录存储在一个文件夹中。该转储文件类型包括以下信息: Stop 消息及其参数和其他数据加载的驱动程序的列表已停止的处理器的上下文 (PRCB)已停止的进程的信息和内核上下文 (EPROCESS)已停止的进程的信息和内核上下文 (ETHREAD)已停止的线程的内核模式调用堆栈当硬盘空间有限时,小存储器转储文件十分有用。但是,由于包括的信息有限,因此,通过分析此文件,可能无法发现并非由正在运行的线程在出现问题时直接导致的错误。如果发生第二个问题并且 Windows 创建第二个小存储器转储文件,则 Windows 会保留以前的文件。Windows 为每个文件提供一个用日期编码的独特文件名。例如,Mini022900-01.dmp 是 2000 年 2 月 29 日生成的第一个存储器转储文件。Windows 将所有小存储器转储文件的列表保存在 %SystemRoot%Minidump 文件夹中。 配置转储类型要配置启动和故障恢复选项以使用小存储器转储文件,请按照下列步骤操作。注意:由于 Microsoft Windows 有多个版本,因此下列步骤可能与在您的计算机上执行的步骤有所不同。如果是这样,请参阅您的产品文档来完成这些步骤。 1.单击“开始”,指向“设置”,然后单击“控制面板”。 2.双击“系统”。3.单击“高级”选项卡,然后单击“启动和故障恢复”下的“设置”。4.在“写入调试信息”列表中单击“小存储器转储 (64k)”。要更改小存储器转储文件的文件夹位置,请在“转储文件”框中(或在“小转储目录”框中,具体取决于 Windows 的版本)键入新路径。用于读取小存储器转储文件的工具站点下载并安装 Windows 调试工具程序包: /whdc/devtools/debugging/default.mspx通过该 Web 页,还可以访问用于 Windows 的可下载符号程序包。要使用该资源,可以在所下载的本地符号或符号服务器使用的符号缓存将驻留的磁盘驱动器上创建一个文件夹。例如,使用 C:Symbols。您可以将下面的符号路径与本文中介绍的所有命令一起使用: SRV*c:symbols*/download/symbols如果将符号下载到本地文件夹中,则可以使用该文件夹的路径作为您的符号路径。 打开转储文件打开开始程序Debugging Tools for WindowsWinDbg出现以下画面。添加字符库链接在symbol path 下添加srv*C:sys*/download/symbols选择Open Crash Dump打开minidump 文件选择dump文件后,Windbg就开始分析dump文件。如下图所示等分析完成后,这个工具会列出造成蓝屏的文件,如下图所示:蓝屏由uhcd.sys 造成。您还可以使用多个命令收集转储文件中的信息,其中包括以下命令: “!analyze -show”命令显示 Stop 错误代码及其参数。Stop 错误代码也称为“调试检查代码”。!analyze -v 命令显示详细的输出内容。lm N T 命令列出指定的加载模块。输出内容包括模块的状态和路径。要获取有关其他命令的帮助以及完整的命令语法,请参阅调试工具的帮助文档。在以下位置可以找到调试工具的帮助文档: C:Program FilesDebugging Tools for WindowsDebugger.chm注意:如果您具有与符号相关的问题,请使用 Symchk 实用工具验证是否正确加载了正确的符号。 有关如何使用 Symchk 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 311503 (/kb/311503/) 使用 Microsoft Symbol Server 获取调试符号文件更多细节 以下例子是网上的高手共享分析dump文件的例子,供大家参考。没有安装调试符号的情况在没有安装调试符号的情况下,我们运行ADPlus.vbs,看看有什么结果。运行下列命令,它将导致对Inetinfo.exe和其他Out-Of-Process (OOP)应用程序的Full-Memory Dumps:cscript.exe adplus.vbs -hang -iisCScript将会输出:Microsoft (R) Windows Script Host Version 5.6Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.以及一个对话框提示你安装调试符号:对话框上建议您安装好调试符号后,新建一个环境变量“_NT_SYMBOL_PATH”保存调试符号的安装路径。然后,让我们继续:The -hang switch was used, Autdoump is running in hang mode.Dumping process info for IIS 5.x and all COM+ server applicationsexcept for the System application.-Dumping process: IIS (INETINFO.EXE) (Process ID: 1140)最后有一个对话框报告日志存放地点:这时候,默认在Debugging Tools For Windows安装路径下新建了一个目录,它的名字类似于这样“Normal_Hang_Mode_Date_10-28-2002_Time_21-25-1919”。下面是Dump的内容:MemoryDump文件PID-792_INETINFO.EXE_full_2002-10-28_21-25-25-750_0318.dmp,和相应的说明PID-792_INETINFO.EXE_Date_10-28-2002_Time_21-25-1919.log。说明文件中会依次给出以下信息: Autodump+启动的时间 操作系统信息 运行计算机名 堆栈信息 句柄信息 线程堆栈遍历信息 加载的模块信息 DLL信息 关键段信息 线程CPU使用情况信息这是肉眼看得懂的。至于高达十几MB的DMP文件,只有让WinDBG来解释了。启动Windbg,按Ctrl+D,将出现选择“Open crash Dump”文件对话框,选中上面的PID-792_INETINFO.EXE_full_2002-10-28_21-25-25-750_0318.dmp。当出现对话框询问是否保存Workspace Information时,选择Yes。之后Windbg将会出现两个窗口“Disassembly”和“Command”。这里我们不需要“Disassembly”窗口,关掉它。“Command”窗口将会告诉你,当Dump进行时,Active Thread在做什么。由于我们没有安装调试符号,所以只能遗憾地看到:Symbol search path is: * Invalid * : Verify _NT_SYMBOL_PATH settingExecutable search path is: .Wake debugger - code 80000007 (! second chance !)eax=00000001 ebx=00000000 ecx=0027aa80 edx=00000000 esi=00000000 edi=00000068eip=77f8fb68 esp=0006f8a0 ebp=0006f910 iopl=0 nv up ei pl zr na po nccs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000246* ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll - ntdll!NtReadFile+b:77f8fb68 c22400 ret 0x24* ERROR: Symbol file could not be found. Defaulted to export symbols for ADVAPI32.dll 这时,输入命令“kb”,这是召唤线程堆栈信息的符咒。你可以查看Windbg帮助,那里写得很明白:KB(Display Stack Backtrace),B就是显示传入每一个函数的前三个参数。输出如下所示:0:000 kbChildEBP RetAddr Args to Child WARNING: Stack unwind information not available. Following frames may be wrong.0006f910 77da86d3 00000068 0006f9d8 00000216 ntdll!NtReadFile+0xb0006f93c 77da9431 00000068 0006f9d8 00000216 ADVAPI32!SetSecurityDescriptorSacl+0x4c0006f9b8 77d929f7 00000068 0006f9d8 00000216 ADVAPI32!StartServiceCtrlDispatcherW+0x34d0006fbf4 01002884 00279390 010040c8 00000000 ADVAPI32!StartServiceCtrlDispatcherA+0x720006fd30 01001e94 002d7f98 00000024 0006ffc0 inetinfo+0x288477dfdbee 2474ff50 2474ff0c fb93e80c 55c3ffff inetinfo+0x1e940c24448d 00000000 00000000 00000000 00000000 0x2474ff50上面的输出可以大致分为三列内容: ChildEBP (列1) RetAddr (列2) Args to Child (列3 5)其他可以尽情练习的命令有: *kb: *代表对于所有的线程应用后面的kb动作 !locks : show all critical sections (这样你就可以看到挂起时哪一个线程在等待了) lm - List Modules loaded in the Process dump dc - Dump address 这几个命令都是重点推荐的,不可不试!安装调试符号的情况以上介绍的是没有安装调试符号的情况,我们来看一看安装了之后有什么不同。首先,安装调试符号。其次,最好新建一个环境变量:重新打开Windbg。这次Windbg加载了Dmp文件之后,就会报告找到了调试符号:Symbol search path is: D:NTSymbolsExecutable search path is: .Wake debugger - code 80000007 (! second chance !)eax=00000004 ebx=00000000 ecx=00000000 edx=00000000 esi=00000000 edi=0000006ceip=77f82861 esp=0006f8a0 ebp=0006f910 iopl=0 nv up ei pl zr na po nccs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000246* WARNING: symbols timestamp is wrong 0x3af357eb 0x38175b30 for ntdll.dllntdll!_output+567:77f82861 c22400 ret 0x24* WARNING: symbols timestamp is wrong 0x3c1aab1e 0x385134fe for ADVAPI32.dll我们来比较一下“*kb”命令在两种情况下的区别:没有安装调试符号情况下: 4 id: 420.484 Suspend: 1 Teb 7ffda000 Unfrozen* ERROR: Symbol file could not be found. Defaulted to export symbols for RPCRT4.DLL - ChildEBP RetAddr Args to Child WARNING: Stack unwind information not available. Following frames may be wrong.0119ff74 77d375ec 77d37a82 00280068 00270000 ntdll!ZwReplyWaitReceivePortEx+0xb0119ffa8 77d379a0 0027b898 0119ffec 77e76523 RPCRT4!RpcBindingSetOption+0x6e90119ffb4 77e76523 0028f788 00270000 50000161 RPCRT4!RpcBindingSetOption+0xa9d0119ffec 00000000 77d37988 0028f788 00000000 KERNEL32!TlsSetValue+0x115安装了调试符号: 4 id: 420.484 Suspend: 1 Teb 7ffda000 UnfrozenChildEBP RetAddr Args to Child 0119ff74 77d375ec 77d37a82 00280068 00270000 ntdll!memmove+0x140119ffa8 77d379a0 0027b898 0119ffec 77e76523 RPCRT4!LOADABLE_TRANSPORT:LOADABLE_TRANSPORT+0x970119ffb4 77e76523 0028f788 00270000 50000161 RPCRT4!ReadSeed+0x110119ffec 00000000 77d37988 0028f788 00000000 K
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九上13《湖心亭看雪》公开课一等奖创新教学设计-2
- 统编版四年级上册语文 21 古诗三首 公开课一等奖创新教学设计(2课时)
- 创伟职业安全培训课件
- 2026年中考语文文言文专练专题02七年级下册古诗文默写(学生版+解析)
- 化妆品安全培训内容课件
- 环境污染与肿瘤关联性研究
- 勾股定理的常考题型课件
- 内分泌饮食课件
- 猫捉老鼠阅读讲解
- 竞争对手行为分析-第1篇-洞察及研究
- 彩色水稻种植技术要求
- 2025年湖南银行社招笔试题库及答案
- 2025年精密数控机床进口采购合同
- DB44T 2635-2025 国土变更调查县级数据库建设技术规范
- 海南省2025年中考化学真题试题(含答案)
- 脱证中医护理常规
- 中国全自动样品处理系统行业投资分析及发展战略咨询报告
- 未来趋势:2025年采购管理优化方案
- 某小学科学实验操作考核细则
- 执法办案培训课件
- 中小学小班化教学模式与支持体系构建研究
评论
0/150
提交评论