首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VC++生成dump资料

2013-08-06 
VC++生成dump文件#include Windows.h#include Dbghelp.h#pragma comment(lib, Dbghelp.lib)int filt

VC++生成dump文件
#include <Windows.h>#include <Dbghelp.h>#pragma comment(lib, "Dbghelp.lib")int filter(unsigned int code, struct _EXCEPTION_POINTERS *ep) {HANDLE hFile = CreateFile(TEXT("./exception.dmp"), 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[]){__try {char *p = NULL;memcpy(p, "aaaa", 4); } __except(filter(GetExceptionCode(), GetExceptionInformation())) { TerminateProcess(GetCurrentProcess(), GetExceptionCode()); } system("pause");return 0;}

?

热点排行