1. exception_handler.h
#pragma once
#include "windows.h"
#include <dbghelp.h>
#include <shellapi.h>
#include <shlobj.h>
#pragma comment( lib, "DbgHelp")
static LONG WINAPI MyUnhandledExceptionFilter(struct _EXCEPTION_POINTERS* ExceptionInfo)
{
HANDLE lhDumpFile = CreateFile(L"DumpFile.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL ,NULL);
MINIDUMP_EXCEPTION_INFORMATION loExceptionInfo;
loExceptionInfo.ExceptionPointers = ExceptionInfo;
loExceptionInfo.ThreadId = GetCurrentThreadId();
loExceptionInfo.ClientPointers = TRUE;
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),lhDumpFile, MiniDumpNormal, &loExceptionInfo, NULL, NULL);
CloseHandle(lhDumpFile);
::ShellExecuteW(NULL, NULL, L"BugReport.exe", NULL, NULL, SW_NORMAL);
return EXCEPTION_EXECUTE_HANDLER;
}
主程序
#include "stdafx.h"
#include "exception_handler.h"
int _tmain(int argc, _TCHAR* argv[])
{
SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
return *(int*)0;
}
2) 主程序中包含该头文件, 并在主函数开头调用:
SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
注意, 该头文件尽量放在最前。 【放在后面编译时可能会出dbghelp.h中的各种错误】
3) 运行。 异常时会生成DumpFile.dmp
4) vs2010。 直接双击dmp文件会在vs2010中显示dump的summary, 右上方的“操作”栏会出现在本机调试字样。 调试即可。
【
dmp、pdb、exe需放在同一目录下】
分享到:
相关推荐
为了解决这些问题,开发者通常需要借助调试工具,其中一种常用的方法是生成Dump文件。Dump文件可以记录程序崩溃时的内存状态,包括堆栈信息、线程状态、内存分配等,帮助开发者定位问题所在。 "C++ 生成Dump文件"是...
在Windows操作系统上,当应用程序遇到未捕获的异常或错误时,生成dump文件是一种非常有用的调试手段。dump文件包含了程序崩溃时的内存快照,包括堆栈信息、进程和线程状态、全局变量等,可以帮助开发者分析问题的...
在Qt和Visual Studio(VS)环境下进行软件开发时,生成dump文件是一种常见的调试手段。当应用程序崩溃或出现未预期的行为时,dump文件可以保存程序运行时的状态,包括内存分配、线程信息、堆栈跟踪等,这对于定位...
在IT行业中,生成dump文件是一项重要的故障排查技术,尤其是在处理应用程序崩溃或挂起等问题时。在本场景中,我们关注的是使用Visual Studio 2013(VS2013)这一开发工具来生成dump文件。dump文件包含了程序运行时刻...
当程序在运行过程中出现错误或异常时,生成dump文件是一种常用的调试手段。Dump文件包含了程序崩溃时的内存快照,包括堆栈信息、进程状态、线程信息等,这对于分析程序崩溃原因非常有帮助。 在"C++ 生成dump文件小...
"Windows系统下的Qt处理崩溃异常的Dump库,生成Dump文件" 这个标题涉及到的是在Windows操作系统中使用Qt框架进行程序开发时,如何处理程序崩溃异常并生成内存转储(Dump)文件的技术。Dump文件是程序运行时内存状态...
本文档将详细介绍如何在Visual Studio 2010 (VS2010)中配置一个项目,使其能够在程序崩溃时自动生成DUMP文件,并提供一些基本的DUMP文件分析方法。 #### 一、基础知识介绍 在开始之前,我们先了解一些基本概念: ...
在编程领域,生成Dump文件是一项重要的调试技巧,尤其是在C++编程中。Dump文件可以记录程序运行时的状态,包括内存分配、线程信息、堆栈跟踪等,有助于开发者分析程序崩溃或异常的原因。在这个"VS2010 C++程序生成...
"Windows下用于生成Dump文件的工具"就是为了解决这一问题而存在的。该工具名为Procdump,由Sysinternals开发,它是一个命令行实用程序,专门设计用来捕获进程的内存转储(Dump文件)。Dump文件包含了进程在特定时间...
本教程将详细讲解如何使用WinDbg生成DUMP文件,并创建一个静态库来支持这个过程。 首先,我们需要理解DUMP文件。DUMP文件是操作系统或应用程序在出现异常时生成的一种故障转储文件,它包含了内存中的关键信息,如...
生成Dump文件的关键是使用Windows API中的`MiniDumpWriteDump`函数,该函数允许我们将进程的内存状态写入到Dump文件中。为了调用这个函数,我们需要包含以下头文件: ```cpp #include #include ``` 然后,确保...
Windows 生成 dump 文件并分析 Windows 生成 dump 文件是一种调试技术,用于排查 Windows 客户端异常。 Dump 文件包含了程序崩溃时的内存信息,可以帮助开发者和debug员快速定位问题。 设置 dump 文件生成 在 ...
在Windows操作系统中,生成dump文件是一项重要的调试技术。Dump文件是一种包含了进程内存状态的文件,当应用程序崩溃或出现异常时,它可以提供给开发者用于后期分析和调试。在本案例中,我们关注的是如何在Windows 7...
在Windows 7操作系统中,与Windows XP相比,系统默认不再提供Dr.Watson这个故障记录工具,因此,如果想要在Win7系统下生成Dump文件,就需要采取其他方法。Dump文件是一种用于故障排查的重要数据,它包含了系统崩溃时...
在IT行业中,生成DUMP文件是一项重要的调试技术,特别是在Windows平台下。DUMP文件是系统或应用程序崩溃时保存的内存快照,包含了当时的内存状态、线程信息、堆栈跟踪等,这对于诊断软件错误和异常行为非常有帮助。...
本主题将深入探讨如何利用SEH来捕获异常,并在程序崩溃时生成dump文件,以便于后期分析和调试。 **SEH异常处理** SEH是一种在Windows平台上特有的异常处理机制,它允许程序员定义一系列处理程序来捕获和处理各种...
而通过生成dump文件,我们可以捕获程序崩溃时的状态,包括内存布局、线程信息、堆栈回溯等,这对于后期分析和解决问题至关重要。本文将详细探讨如何在Windows程序崩溃后通过代码生成完整的dump文件,以及如何控制...
本文将详细讲解如何通过修改注册表来开启或关闭Windows系统生成DUMP文件的功能。 首先,我们需要了解DUMP文件的类型。Windows支持三种类型的DUMP文件: 1. **小内存转储(Small Memory Dump)**:只包含内核模式下...
windows程序报错生成dump文件,方便找错误原因
在IT行业中,生成dump文件是调试和分析程序异常情况的重要手段。dump文件包含了程序运行时内存的状态,可以用于后续的故障排查和问题诊断。这里我们要关注的是一款名为"miniDump"的开源软件,它专门用于生成这样的...