通过WinDbg生成dump文件
2013-01-14 09:37
162 查看
在Windows开发环境下,通常使用Visual studio完成项目的开发以及调试,很少会用到WinDbg。WinDbg提供了强大的调试功能,在一些情况下,Visual Studio附带的调试工具无法完成调试工作,只有通过WinDbg来完成,例如,对dump文件的分析。
1. dump 文件简介
dump 文件是指内存转储文件,是系统在程序崩溃时将当前相关内存状态存储到硬盘上的文件,用于对系统崩溃的原因分析,例如操作系统的蓝屏等。可以通过注册表的方式进行设置,操作系统会根据注册表的设置来决定是否在系统崩溃时生成dump文件。在产品开发中,当自己的产品发生崩溃时,通常会生成dump文件,已供开发人员检测崩溃的原因,本文主要介绍如何通过WinDbg手动声称dump文件,用于学习如何对dump文件进行分析。
2.WinDbg下载与安装
WinDbg的下载与安装非常简单,不再介绍,这里提供一个链接
http://msdn.microsoft.com/en-us/windows/hardware/gg463009/
3.示例程序的准备
在生成dump文件之前,需要准备一个示例程序,为了便于学习,该示例程序只用来产生一个访问空指针的违例操作,如下所示:
在debug模式下编译上述代码,生成可执行文件WinDbgTest.exe
4. 生成dump文件
(1)运行WinDbgTest.exe,该程序在运行后会崩溃,操作系统给出提示
(2)运行WinDbg.exe
运行WinDbg.exe,选择File->Attach to process. 在进程列表中选择WinDbgTest.exe。点击ok
(3)生成dump文件
在命令行窗口输入如下指令:
.dump /mf D:\MyCodesSymbols\WinDbgTest.dmp
该指令的含义是在D:\MyCodesSymbols目录下,生成WinDbgTest.dmp文件,该文件是最小用户模式的dump文件。
dump文件生成成功时,会提示
至此,手动生成dump文件便完成了,在今后的分析讨论过程中,均是通过这种方式产生用于我们学习分析的dump文件。
测试平台:
Visual Studio 2005, Windbg6.2.9200
1. dump 文件简介
dump 文件是指内存转储文件,是系统在程序崩溃时将当前相关内存状态存储到硬盘上的文件,用于对系统崩溃的原因分析,例如操作系统的蓝屏等。可以通过注册表的方式进行设置,操作系统会根据注册表的设置来决定是否在系统崩溃时生成dump文件。在产品开发中,当自己的产品发生崩溃时,通常会生成dump文件,已供开发人员检测崩溃的原因,本文主要介绍如何通过WinDbg手动声称dump文件,用于学习如何对dump文件进行分析。
2.WinDbg下载与安装
WinDbg的下载与安装非常简单,不再介绍,这里提供一个链接
http://msdn.microsoft.com/en-us/windows/hardware/gg463009/
3.示例程序的准备
在生成dump文件之前,需要准备一个示例程序,为了便于学习,该示例程序只用来产生一个访问空指针的违例操作,如下所示:
#include "stdafx.h" int CrashFunction(int i, int j) { if( i == 8 && j == 6 ) { int *p = NULL; int tmp = *p; // Crash!! return tmp; } else { return 1; } } int _tmain(int argc, _TCHAR* argv[]) { CrashFunction(8,6); return 0; }
在debug模式下编译上述代码,生成可执行文件WinDbgTest.exe
4. 生成dump文件
(1)运行WinDbgTest.exe,该程序在运行后会崩溃,操作系统给出提示
(2)运行WinDbg.exe
运行WinDbg.exe,选择File->Attach to process. 在进程列表中选择WinDbgTest.exe。点击ok
(3)生成dump文件
在命令行窗口输入如下指令:
.dump /mf D:\MyCodesSymbols\WinDbgTest.dmp
该指令的含义是在D:\MyCodesSymbols目录下,生成WinDbgTest.dmp文件,该文件是最小用户模式的dump文件。
dump文件生成成功时,会提示
至此,手动生成dump文件便完成了,在今后的分析讨论过程中,均是通过这种方式产生用于我们学习分析的dump文件。
测试平台:
Visual Studio 2005, Windbg6.2.9200
相关文章推荐
- Wince如何生成Dump文件,通过Windbg进行错误现场还原和Bug修复
- Wince如何生成Dump文件,通过Windbg进行错误现场还原和Bug修复
- 用WinDbg分析Debug Diagnostic Tool生成的Userdump文件
- 使用Windbg生成dump文件
- 生成程序崩溃的dump文件,使用windbg调试
- 使用Windbg生成dump文件
- 使用Windbg生成dump文件
- 生成程序崩溃的dump文件,使用windbg调试
- 使用WinDBG生成dump文件 WinDBG分析dump文件
- windbg 生成并分析dump文件
- windbg-奔溃生成的dump文件
- windbg生成dump文件
- 使用WinDBG生成和调试dump文件
- 验证码制作之三: 通过ASCEE码随机生成4位字符与数字验证码
- Eclipse生成的java class文件通过java命令行调用提示Exception in thread "main" java.lang.NoClassDefFoundError
- tween.js是一款可生成平滑动画效果的js动画库。tween.js允许你以平滑的方式修改元素的属性值。它可以通过设置生成各种类似CSS3的动画效果。
- vue新框架nux通过文件目录自动生成路由
- 通过复制Table生成word和excel的javascript代码
- 如何通过mybatis逆向工程生成实体类以及dao和mapper.xml
- Unity工程通过eclipse生成APK