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调试打印日志(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索dump调试打印日志
gdb coredump 调试、coredump 调试、dump日志、windbg 调试dump、trace32 dump调试,以便于您获取更多的相关知识。
时间: 2024-10-23 13:53:33