zoukankan      html  css  js  c++  java
  • Windows C++ 程序崩溃收集工具

    Windows C++ 程序崩溃收集工具

    说明

    MiniDumper(LPCTSTR DumpFileNamePrefix)

    MiniDumper(LPCTSTR DumpFileNamePrefix, LPCTSTR CmdLine, LPCTSTR ExeNameToReboot /* = NULL */)

    DumpFileNamePrefix 崩溃文件名前缀

    CmdLine 生成崩溃文件后执行命令(包含参数)

    ExeNameToReboot 生成崩溃文件后执行指定程序

    使用示例

    在崩溃时调用指定的程序,下面的示例是调用CrashReport.exe上传到指定的服务器

    #include "PostMortem.h"
    
    char *szArgs = new char[2048];
    ZeroMemory(szArgs, 2048);
    StringCbPrintf(szArgs, 2048, _T("./CrashReport.exe "dumper.wanwanol.com" "%s""), g_pLogSys->GetLogFileName());
    MiniDumper g_MiniDumper(_T("Client"), szArgs);
    SAFE_DELETE_ARRAY(szArgs);
    

    大致说明

    MiniDumper 初始化时调用 Win32 API SetUnhandledExceptionFilter 注册过滤函数TopLevelFilter
    当发生崩溃时会调用TopLevelFilter生成minidump文件,其过程如下:

    1. 显式加载DBGHELP.DLL,并定位到MiniDumpWriteDump函数地址
    2. 调用MiniDumpWriteDump函数生成DumpFileNamePrefix前缀的minidump文件
    3. 调用ContextDump函数生成当前堆栈日志文件
    4. 创建进程CmdLine如果指定,这里一般会调用上传程序把相关日志记录上传到远程服务器,由工程师统一调查处理。
    5. 创建进程ExeNameToReboot如果指定

    Github 仓库地址

  • 相关阅读:
    MemCached总结二:数据管理指令
    MemCached总结一:Unbutu操作系统下memcached服务器安装和telnet方式连接memcache
    Laravel5 开启Debug
    状压dp
    树形dp
    区间dp
    线性dp
    背包九讲
    dp求解各种子串子序列
    线段树详解
  • 原文地址:https://www.cnblogs.com/flying_bat/p/14053710.html
Copyright © 2011-2022 走看看