Windows 错误报告

当一个进程因为未处理异常而终止时,Windows错误报告(Error Reporting,简称WER)会创建关于未处理异常及其执行上下文的错误报告。

如果得到用户的许可,这个报告就会通过安全信道发送给Microsoft 的服务器,在那里它会和数据库里的已知问题做比较。如果数据库里已经有这个问题的解决方案,服务器会将它发送给用户,这样用户就可以采取相应步骤来继续完成自己的工作。

 

有时,我们可能想让应用程序通过调用一系列的Windows错误报告函数定制错误报告

下面是我们可能需要定制错误报告的三种情况:

1、我们在编写自己的未处理异常过滤程序;

2、我们想要应用程序在未处理异常没有发生的情况下也生成报告;

3、我们想往错误报告里添加更多信息;

定制问题报告的一种简单方式是指出哪些数据块或者文件需要添加到为进程生成的每个问题报告里。

要添加任意数据块,我们可以调用:

HRESULT WerRegisterMemoryBlock( PVOID pvAddress, DEORD dwSize);

要添加任意文件到问题报告中,我们只需调用:

HRESULT  WerRegisterFile(  PCWSTR pwzFilename, WER_REGISETER)_FILE_TYPE regFileType, DWORD dwFlags );

这两个函数都存在于wer.dll中,并在werapi.h中声明。

已发送报告的跟踪信息保存在当前用户的AppData\Local\Microsoft\Windows\ WER\ ReportArchive 目录。 

未发送报告队列保存在当前用户的AppData\Local\Microsoft\Windows\ WER\ ReportQueue 目录。

 

在以后版本的Windows中,dump文件的名字可能会改变。以后的版本将会包含错误程序的名字,但是后缀名.hdmp/.mdmp保持变。比如MyApp.exe.hdmp 和 MyApp.exe.mdmp 会被用来代替Memory.hdmp 和 MiniDump.mdmp

参考文献:Windows 核心编程(第五版)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值