首页 > 编程 > C++ > 正文

C++软件添加dump调试打印日志(推荐)

2020-05-23 14:01:33
字体:
来源:转载
供稿:网友

C++软件添加dump调试打印日志(推荐)

#include <DbgHelp.h>#pragma comment(lib, "dbghelp.lib")LONG WINAPI TopLevelExceptionFilter(struct _EXCEPTION_POINTERS *pExceptionInfo) {    //cout << "Enter TopLevelExceptionFilter Function" << endl;    TCHAR szPath[MAX_PATH] = { 0 };   TCHAR szFileName[MAX_PATH] = { 0 };   TCHAR* szVersion = "v1.0";   TCHAR dwBufferSize = MAX_PATH;   SYSTEMTIME stLocalTime;   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());    HANDLE hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);    MINIDUMP_EXCEPTION_INFORMATION stExceptionParam;     stExceptionParam.ThreadId  = GetCurrentThreadId();     stExceptionParam.ExceptionPointers = pExceptionInfo;     stExceptionParam.ClientPointers  = FALSE;     MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpWithFullMemory, &stExceptionParam, NULL, NULL);     CloseHandle(hFile);     getchar();    return EXCEPTION_EXECUTE_HANDLER;}//----------------------------------------------

在程序最开始的地方调用这个函数

SetUnhandledExceptionFilter(TopLevelExceptionFilter);

以上这篇C++软件添加dump调试打印日志(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持VEVB武林网。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表