CrashRpt学习内容

来源:互联网 发布:stm32固件库源码下载 编辑:程序博客网 时间:2024/05/21 06:31

CrashRpt是轻量级的开源错误报告库,是VS的一个工程,使用的时候只需要包含dbhelp.dll、CrashRpt.dll、Crashsender.exe三个文件在工程路径下

函数接口说明:http://crashrpt.sourceforge.net/docs/html/group___crash_rpt_a_p_i.html

typedef int( * PFNCRASHCALLBACKW)(CR_CRASH_CALLBACK_INFOW *pInfo)

发生Crash时的回调函数,用于执行简单操作,如:可设置奔溃信息收集完成后程序继续运行;关闭log文件句柄,log文件加入报告中;


int crAddScreenShot2(DWORD dwFlags,int nJpegQuality)

屏幕截屏加入错误报告中

int crAddFile2W(LPCWSTRpszFile,LPCWSTRpszDestFile,LPCWSTRpszDesc,DWORDdwFlags )

添加文件至报告所在路径中

int crExceptionFilter(unsigned intcode,struct _EXCEPTION_POINTERS *ep )

可用作SHE异常过滤器

int crAddVideo(DWORD dwFlags,int nDuration,int nFrameInterval,PSIZE pDesiredFrameSize,HWND hWndParent)

记录奔溃前发生的事件,并将文件包含如报告中

int crAddPropertyW(LPCWSTRpszPropName,LPCWSTRpszPropValue )

添加字符串信息内容至报告文件中

int crAddRegKeyW(LPCWSTRpszRegKey,LPCWSTR pszDstFileName,DWORDdwFlags )

将注册中心密钥转储添加到崩溃报告中

int crEmulateCrash(unsignedExceptionType )

模拟预先定义的崩溃信息

int crGenerateErrorReport(CR_EXCEPTION_INFO *pExceptionInfo ) 

手动生成错误报告


int crGetLastErrorMsgA(LPSTRpszBuffer,UINTuBuffSize )

获取CrashRpt上一个错误信息


DWORD dwFlags int crInstallA(PCR_INSTALL_INFOApInfo ) 

为调用者进程安装异常处理程序


int crInstallToCurrentThread2(DWORDdwFlags ) 

为调用线程安装异常处理


int crSetCrashCallbackA(PFNCRASHCALLBACKApfnCallbackFunc,LPVOIDlpParam )

设置Crash时的回调函数


int crUninstall( ) 

卸载调用CrashRpt库进和先前通过crInstall安装的异常句柄


int crUninstallFromCurrentThread( )

从当前线程中卸载C++异常句柄


CrashRpt组成:

该库分成两部分,错误收集部分,错误分析部分,前者是位于client端,后者是位于开发者端;



CrashRpt的官方应用例子:

http://crashrpt.sourceforge.net/docs/html/simple_example.html


在VS中使用CrashRpt:

1、需要将CrashRptXXXX.lib包含进入工程中(XXXX为CrashRpt具体的版本号)

2、在使用CrashRpt库的工程中,需要将CraRptXXXX.dll,CrashSenderXXXX.exe,dbghelp.dll,crashrpt_lang.ini放在工程所在路径下