加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 05:22:47 所属栏目:百科 来源:网络整理
导读: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_

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,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); 
    CloseHandle(hFile); 
    getchar();

    return EXCEPTION_EXECUTE_HANDLER;
}

//----------------------------------------------

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

SetUnhandledExceptionFilter(TopLevelExceptionFilter);

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读