欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

CrashRpt使用案例详解

时间:2022-06-11 10:09:43|栏目:C代码|点击:

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;

上一篇:C语言实现循环双链表

栏    目:C代码

下一篇:C++ 多继承详情介绍

本文标题:CrashRpt使用案例详解

本文地址:http://www.codeinn.net/misctech/204444.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有