`
aigo
  • 浏览: 2753972 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

VC++生成dump文件

 
阅读更多

 

#include <time.h>
#include <Windows.h>
#include <Dbghelp.h>

#pragma comment(lib, "Dbghelp.lib")

long   __stdcall   crush_callback(_EXCEPTION_POINTERS*   ep) 
{
	time_t t;
	struct tm *p;
	char fname[256] = {0};

	t = time(NULL) + 8 * 3600;  	//东八区
	p = gmtime(&t);  

	sprintf(fname, "dump_%d-%d-%d_%d_%d_%d.DMP", 1900+p->tm_year, 1+p->tm_mon, p->tm_mday, (p->tm_hour)%24, p->tm_min, p->tm_sec);  

	//TCHAR *pStr = A2T(fname);
	HANDLE hFile = CreateFileA(fname, 
		GENERIC_WRITE, 
		0,
		NULL,
		CREATE_ALWAYS,
		FILE_ATTRIBUTE_NORMAL,
		NULL);
	if (hFile == INVALID_HANDLE_VALUE)
	{
		return EXCEPTION_CONTINUE_SEARCH;
	}
	MINIDUMP_EXCEPTION_INFORMATION    exceptioninfo;
	exceptioninfo.ExceptionPointers = ep;
	exceptioninfo.ThreadId          = GetCurrentThreadId();
	exceptioninfo.ClientPointers    = FALSE;

	if (!MiniDumpWriteDump(GetCurrentProcess(),
		GetCurrentProcessId(),
		hFile,
		MiniDumpWithFullMemory, //这里会将程序运行时的内存写入磁盘,文件较大,如果不需要这些及时的内存信息,用:MiniDumpNormal
		&exceptioninfo,
		NULL,
		NULL))
	{
		return EXCEPTION_CONTINUE_SEARCH;
	}
	CloseHandle(hFile);
	return EXCEPTION_EXECUTE_HANDLER;
}

int main(int argc, char* argv[])   
{   
	SetUnhandledExceptionFilter(crush_callback);   
	_asm   int   3   //只是为了让程序崩溃
	return   0;   
}

 

分享到:
评论

相关推荐

    vc++程序自动生成dump Windbg文件

    在客户机器上如何得到应该程序的详细出错信息, 这里使用drwtsn32,在应用程序崩溃的时候自动将调用栈的信息以文件形式保存在磁盘。... 生成dump有drwtsn32, NTSD,CDB等多种工具,drwtsn32 于系统自带。

    vc++ 6.0使用dbghelp.dll生成dmp内存转储文件

    本文将详细讲解如何利用VC++ 6.0和dbghelp.dll库来生成DMP文件。 首先,dbghelp.dll是Windows操作系统中用于调试帮助的动态链接库,它提供了诸如堆栈回溯、模块信息获取、符号加载等功能。在VC++ 6.0中,通过调用这...

    c++ dump文件生成类

    2. **Win32 API**:在Windows平台上,可以使用Win32 API函数,如MiniDumpWriteDump,来生成dump文件。这个函数允许开发者在程序崩溃时记录特定的信息到dump文件。 3. **BRExceptionFilter.cpp和BRExceptionFilter.h...

    vc崩溃dump

    首先,让我们了解如何在VC++项目中集成CrashRpt库来生成dump文件。CrashRpt是一个开源的C++库,它提供了一种简单的方式来捕获和报告应用程序崩溃。要使用CrashRpt,你需要下载并将其包含到你的项目中。例如,提供的...

    自动写DUMP

    标题中的"自动写DUMP"指的是在程序发生异常时,系统能够自动生成一个DMP(Dump)文件,该文件包含了程序崩溃时刻的内存快照,包括堆栈信息、线程状态、内存分配等关键数据。 DMP文件是一种二进制文件,通常由操作...

    定位程序崩溃的位置

    本文将深入探讨如何利用CMiniDumper类生成Dump文件,并通过Visual Studio进行分析,从而准确地找到程序出错的地方。 首先,Dump文件是一种用于记录程序运行时状态的数据文件,它包含了进程内存、调用堆栈、线程信息...

    vs2010下利用dmp和pdb文件分析异常行号

    本文将深入探讨如何在VS2010环境下利用DMP(Dump)文件和PDB(Program Database)文件来分析程序中的异常行号。 首先,我们需要理解DMP文件和PDB文件的作用。DMP文件,也称为内存转储文件,是操作系统在程序崩溃时...

    AppDump.rar

    在"testdump"文件中,可能包含了一个实际的dump文件或者是一份关于如何生成和分析dump文件的指南。如果是dump文件,我们可以使用WinDbg进行打开,并执行一系列命令,如`.loadby sos mscorwks`加载调试支持库,然后...

    VC++ Use WMI example

    一个VC++ 2010开发的小工具,可以生成process dump 文件,执行WMI查询,调用WMI 方法(StdRegProv.GetDWORDValue和 Win32_OperatingSystem.Reboot 和Win32Shutdown方法)。

    应用程序崩溃问题处理办法.pdf

    此外,自5.3.04版本的驱动开始,三汇语音卡的驱动程序提供了CreateDumpWhenCrash配置选项,当驱动崩溃时,Windows系统下也会生成dump文件,这为诊断驱动层面的问题提供了便利。 总的来说,处理应用程序崩溃问题需要...

    vc++6.0使用与开发

    这个文件不跨机器共享,每台机器打开 Workspace 时会根据当前环境生成相应的 .opt 文件。 - **MFC 编程特点**: - MFC(Microsoft Foundation Classes)是 Microsoft 提供的一组 C++ 类库,用于简化 Windows 应用...

    VC++深入编程内幕

    由于该文件包含了特定计算机的信息,因此不具备可移植性,当在不同的计算机上打开同一个工作空间文件时,会自动生成一个新的.opt文件以匹配当前计算机的配置。 - **ClassWizard文件(.clw)**:这是一种特殊的文件...

    深入内幕编程VC++学习读本

    在Visual C++中开发应用程序时,系统会自动生成多种类型的文件来组织项目。 - **dsw(Workspace文件)**:这是Visual C++中最高级别的文件类型,用于管理多个项目(Project)。通过这个文件可以协调和管理多个项目...

    MXC.rar_JSON_Json MFC_json c++_mfc json_vc++ json

    本主题将深入探讨如何在C++、MFC以及使用VC++编译器时,有效地解析和生成JSON数据。 首先,让我们了解JSON的基本结构。JSON是一种基于文本的格式,主要由键值对(key-value pairs)组成,数据类型包括字符串、数字...

    VC++实例

    ### VC++实例知识点详解 #### 一、Visual C++简介 **1.1 Visual C++ 和 MFC 的历史** - **Visual C++ 的起源与发展**: - Visual C++ 是微软公司开发的一款集成开发环境(IDE),专为 Windows 平台上的 C/C++ ...

    tmpdump2.3 librtmp 静态库、动态库、源代码。(修正版)

    静态库将所有依赖项都包含在内,使得生成的可执行文件独立,不需额外的库文件;而动态库则会在运行时从系统中加载,使得程序更小,但需要系统中安装相应的库文件。 在源代码层面,通过分析tmpdump2.3和librtmp的源...

    深入编程内幕---Visual C++.pdf

    这类文件不具备跨机器共享的能力,当打开 *Workspace* 文件时,如果没有找到相应的 `.opt` 文件,系统会自动生成一个。 - **其他重要文件**: - **`.clw` 文件**:用于存储项目中类和资源的信息,是 ClassWizard ...

    ovito-basic-3.1.1-win64_lammps_lammps后处理_ovito后处理_ovito后处理_ovito

    - 数据导入:支持多种分子动力学输出格式,如LAMMPS的dump文件,MDynaMix,VASP,Gromacs等。 - 数据转换:能够对粒子属性进行转换和计算,例如速度、温度、压力等。 - 数据筛选:用户可以基于特定条件筛选粒子,如...

    进程死锁查看器

    Windows Crash Dump API是Windows操作系统提供的一组接口,用于生成和分析崩溃转储文件。这些文件包含了系统在特定时间点的内存快照,可以用来诊断系统崩溃、性能问题以及像死锁这样的并发问题。WCT API允许开发者...

    json工程源码 VC6.0和VS2010

    你需要下载库源码,配置项目设置,将库文件加入到项目中,并链接相应的库。 - VS2010:支持现代C++特性,可以选择更现代的JSON库,如RapidJSON或nlohmann/json。这些库通常有更丰富的功能和更好的性能。添加库的...

Global site tag (gtag.js) - Google Analytics