CrashRpt使用案例详解

 更新时间:2021年08月25日 14:10:37   作者:Mars Coder  
这篇文章主要介绍了CrashRpt使用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

CrashRpt介绍及简单应用

1、简介

CrashRpt是一个开源的第三方包,在程序出现未处理异常时,能够收集错误信息,并生成程序错误报告。CrashRpt可以将报告按照指定的方式(例如HTTP或SMTP)发送给开发者或者保存在本地,并且可以对生成的错误报告进行分析,定位错误位置,找出错误原因。

2、CrashRpt源码结构

CrashRpt开源代码主要可分为三部分:

  1. CrashRpt:用于拦截程序没有处理的异常,生成MiniDump文件,并和使用该库指定的信息(例如日志文件和屏幕截图等)一起打包成错误报告。
  2. CrashSender:用于将生成的错误报告按照指定方式(HTTP、SMTP或者MAPI)发送或保存。
  3. CrashRptProbe:用于在后台接收并分析错误报告,并以文本的形式输出程序的异常信息。

3、简单应用

下面是CrashRpt简单应用的示例代码:

 // Install crash reporting

    CR_INSTALL_INFO info;

    memset(&info, 0, sizeof(CR_INSTALL_INFO));

    info.cb = sizeof(CR_INSTALL_INFO);             // Sizeof the structure

    info.pszAppName = _T("APPName"); // App name

    info.pszAppVersion = _T("1.0.0");              // Appversion

    info.pszErrorReportSaveDir = _T("Crash Report");

    info.pszEmailSubject = _T("Crash Report"); // Email subject

    info.pszUrl = url;

    info.uPriorities[CR_HTTP] = 3;

    info.uPriorities[CR_SMTP] = 2; 

    info.uPriorities[CR_SMAPI] = 1;

    info.dwFlags |=CR_INST_ALL_POSSIBLE_HANDLERS;

    info.dwFlags |= CR_INST_APP_RESTART;

    info.pszRestartCmdLine = _T("/restart");

   

    intnInstResult = crInstall(&info);           

    // Check result

    if(nInstResult!=0)

    {
        TCHAR buff[512];

        crGetLastErrorMsg(buff, 512); // Get last error

        _tprintf(_T("%s\n"),buff); // and output it to the screen

        return1;

    }

 

   // Crash

   int a= 0;

   int b= 1 / a;

 

  // Uninstall

  #if defined (USE_CRASHRPT)

        crUninstall();

  #endif

        return 0;

到此这篇关于CrashRpt使用案例详解的文章就介绍到这了,更多相关CrashRpt使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言详解关键字sizeof与unsigned及signed的用法

    C语言详解关键字sizeof与unsigned及signed的用法

    这篇文章主要为大家详细介绍了C语言关键字sizeof&&unsigned&&signed,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C/C++经典算法之约瑟夫问题详解

    C/C++经典算法之约瑟夫问题详解

    这篇文章主要给大家介绍了关于C/C++经典算法之约瑟夫问题的相关资料,约瑟夫环问题是一道经典的数据结构的题目,本文介绍了解决约瑟夫问题的三种方法,需要的朋友可以参考下
    2021-07-07
  • C++广播通信实例

    C++广播通信实例

    这篇文章主要介绍了C++实现广播通信的方法,实例讲述了C++ socket广播通信的原理与实现方法,需要的朋友可以参考下
    2014-10-10
  • Linux中使用C语言实现基于UDP协议的Socket通信示例

    Linux中使用C语言实现基于UDP协议的Socket通信示例

    这篇文章主要介绍了Linux中使用C语言实现基于UDP协议的socket通信示例,服务器端与客户端的功能都非常基础,需要的朋友可以参考下
    2016-03-03
  • c++中cin实现输入字符串方式

    c++中cin实现输入字符串方式

    这篇文章主要介绍了c++中cin实现输入字符串方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 教你用Matlab制作黄金矿工小游戏

    教你用Matlab制作黄金矿工小游戏

    黄金矿工作为经典的单机小游戏,一直深受大家的喜爱。本文将用Matlab制作这一款经典的游戏,文中的实现步骤讲解详细,感兴趣的可以了解一下
    2022-03-03
  • C++线程间的互斥和通信场景分析

    C++线程间的互斥和通信场景分析

    很多朋友对C++线程间的互斥和通信知识掌握不是多牢靠,今天小编通过模拟车站卖票应用场景给大家详细解析C++线程间的互斥和通信知识,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • C++类和对象之类的6个默认成员函数详解

    C++类和对象之类的6个默认成员函数详解

    类是对某一事物的抽象描述,具体地讲类是C++中的一种构造的数据类型,下面这篇文章主要给大家介绍了关于C++类和对象之类的6个默认成员函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • C语言循环链表实现贪吃蛇游戏

    C语言循环链表实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了C语言循环链表实现贪吃蛇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • C语言实现通讯录功能

    C语言实现通讯录功能

    这篇文章主要为大家详细介绍了C语言实现通讯录功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论