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 仓库地址

  • 相关阅读:
    2018-10-25 模拟测试题解
    bzoj1218 [HNOI2003]激光炸弹题解
    poj1958 Strange Towers of Hanoi 题解
    NOIP2018游记
    6-序列公共用法:索引和切片
    5-编码格式
    4-格式化
    3-课后习题记录-就放这里了
    2-条件语句和循环语句
    1-基本数据类型的操作
  • 原文地址:https://www.cnblogs.com/flying_bat/p/14053710.html
Copyright © 2011-2022 走看看