博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows 错误报告
阅读量:4166 次
发布时间:2019-05-26

本文共 906 字,大约阅读时间需要 3 分钟。

当一个进程因为未处理异常而终止时,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 核心编程(第五版)

转载地址:http://ezlxi.baihongyu.com/

你可能感兴趣的文章
HTML总结(一)
查看>>
3月英语--平平淡淡
查看>>
csf格式转换--逼自己一把
查看>>
ASP控件总结(一)
查看>>
Nginx+Keepalived技术分享
查看>>
Repeater&Validator控件使用
查看>>
细水翻起半点波涛--4月英语
查看>>
ASP--Active Server Pages Summary
查看>>
EF异常:对一个或多个实体的验证失败
查看>>
从XML中学习HTML
查看>>
常见的电脑病毒
查看>>
站在巨人的肩膀上!
查看>>
2017年5月软考总结
查看>>
Node.js中运行JavaScript代码
查看>>
5月英语总结--I will do it well.
查看>>
认识JS
查看>>
Google浏览器--翻译一定要“出去”吗?
查看>>
bash:ifconfig:未找到命令
查看>>
送给毕业的歌
查看>>
考试维护一路走来
查看>>