CrashRpt介绍及简单应用
1、简介
CrashRpt是一个开源的第三方包,在程序出现未处理异常时,能够收集错误信息,并生成程序错误报告。CrashRpt可以将报告按照指定的方式(例如HTTP或SMTP)发送给开发者或者保存在本地,并且可以对生成的错误报告进行分析,定位错误位置,找出错误原因。
2、CrashRpt源码结构
CrashRpt开源代码主要可分为三部分:
- CrashRpt:用于拦截程序没有处理的异常,生成MiniDump文件,并和使用该库指定的信息(例如日志文件和屏幕截图等)一起打包成错误报告。
- CrashSender:用于将生成的错误报告按照指定方式(HTTP、SMTP或者MAPI)发送或保存。
- CrashRptProbe:用于在后台接收并分析错误报告,并以文本的形式输出程序的异常信息。
3、简单应用
下面是CrashRpt简单应用的示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
// 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使用内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/WZh0316/article/details/77482653