C++软件添加dump调试打印日志(推荐)
C++软件添加dump调试打印日志(推荐)
#include<DbgHelp.h> #pragmacomment(lib,"dbghelp.lib") LONGWINAPITopLevelExceptionFilter(struct_EXCEPTION_POINTERS*pExceptionInfo) { //cout<<"EnterTopLevelExceptionFilterFunction"<<endl; TCHARszPath[MAX_PATH]={0}; TCHARszFileName[MAX_PATH]={0}; TCHAR*szVersion="v1.0"; TCHARdwBufferSize=MAX_PATH; SYSTEMTIMEstLocalTime; GetLocalTime(&stLocalTime); CreateDirectory(szFileName,NULL); StringCchPrintf(szFileName,MAX_PATH,"%s-%04d%02d%02d-%02d%02d%02d-%ld-%ld.dmp", szVersion,stLocalTime.wYear,stLocalTime.wMonth,stLocalTime.wDay, stLocalTime.wHour,stLocalTime.wMinute,stLocalTime.wSecond, GetCurrentProcessId(),GetCurrentThreadId()); HANDLEhFile=CreateFile(szFileName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); MINIDUMP_EXCEPTION_INFORMATIONstExceptionParam; stExceptionParam.ThreadId=GetCurrentThreadId(); stExceptionParam.ExceptionPointers=pExceptionInfo; stExceptionParam.ClientPointers=FALSE; MiniDumpWriteDump(GetCurrentProcess(),GetCurrentProcessId(),hFile,MiniDumpWithFullMemory,&stExceptionParam,NULL,NULL); CloseHandle(hFile); getchar(); returnEXCEPTION_EXECUTE_HANDLER; } //----------------------------------------------
在程序最开始的地方调用这个函数
SetUnhandledExceptionFilter(TopLevelExceptionFilter);
以上这篇C++软件添加dump调试打印日志(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。