日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

面向开发人员的Windows错误报告(WER)

發(fā)布時(shí)間:2024/5/24 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 面向开发人员的Windows错误报告(WER) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Windows錯(cuò)誤報(bào)告是更新的Windows XP上Dr.Watson的替代品。它監(jiān)視故障并收集可以發(fā)送到要分析的服務(wù)器(如果用戶允許)的有用信息。這項(xiàng)功能幫助微軟修復(fù)了很多錯(cuò)誤——由于收到的報(bào)告,微軟能夠?qū)﹀e(cuò)誤進(jìn)行優(yōu)先排序(基于最大點(diǎn)擊數(shù)或其他嚴(yán)重性度量),并解決了很多問題。真正酷的是,任何開發(fā)人員都可以為其產(chǎn)品請(qǐng)求報(bào)告。來(lái)自PDC 2003的Bill Gates:“每當(dāng)應(yīng)用程序或系統(tǒng)出現(xiàn)故障時(shí),您就能夠?qū)?bào)告發(fā)送回Microsoft。我們得到了很多這樣的報(bào)告,我們已經(jīng)創(chuàng)建了非常好的數(shù)據(jù)管理系統(tǒng)來(lái)查看這些東西,從而了解哪些驅(qū)動(dòng)程序是不可靠的。我們?cè)试S任何在Windows上運(yùn)行應(yīng)用程序的人注冊(cè)并獲取與其應(yīng)用程序相關(guān)的報(bào)告,而且我們還有winqual.microsoft.com,人們可以在這里完成這項(xiàng)工作。”

以下是WER的工作原理:當(dāng)進(jìn)程崩潰時(shí),WER收集數(shù)據(jù)并將其發(fā)送到服務(wù)器(如果用戶允許;默認(rèn)情況下,WER請(qǐng)求同意)。對(duì)于非Microsoft程序,此服務(wù)器是Winqual(Windows質(zhì)量聯(lián)機(jī)服務(wù))。在服務(wù)器端:基于崩潰的參數(shù),創(chuàng)建一個(gè)bucket來(lái)保存新的錯(cuò)誤,或者將報(bào)告添加到已經(jīng)存在的bucket中(這意味著以前有人遇到過這個(gè)問題)。開發(fā)人員可以分析故障;如果根據(jù)收集的數(shù)據(jù)找不到解決方案,他/她可以請(qǐng)求其他信息(轉(zhuǎn)儲(chǔ)、注冊(cè)表項(xiàng)值等)。此外,他/她還可以添加一條解釋失敗的消息。當(dāng)同一類型崩潰的實(shí)例發(fā)生時(shí),服務(wù)器將顯示開發(fā)人員設(shè)置的消息,并在必要時(shí)要求提供附加信息。如果開發(fā)人員找到一個(gè)解決方案,在下一次崩潰時(shí),服務(wù)器可以提供解決方案(見下圖)。閱讀有關(guān)錯(cuò)誤報(bào)告收集和分類的詳細(xì)信息

在Vista和更高版本上,程序崩潰的用戶可以轉(zhuǎn)到“控制面板”->“問題報(bào)告和解決方案”(啟動(dòng)wercon.exe),查看機(jī)器上發(fā)生了什么故障。

在這里,您可以檢查解決方案并查看已識(shí)別的問題

您可以查看每個(gè)問題的參數(shù),并查看對(duì)報(bào)表進(jìn)行分類的bucket。

作為開發(fā)人員,您可以轉(zhuǎn)到Winqual并注冊(cè)以接收失敗報(bào)告。但還有其他方法可以利用WER。您可以將WER配置為將報(bào)告發(fā)送到您的一個(gè)服務(wù)器,這樣您就可以直接查看它們。例如,假設(shè)您有兩臺(tái)要監(jiān)視的機(jī)器。您可以使用System Center Operations Manager(SCOM)和Agentless錯(cuò)誤監(jiān)視(AEM)將所有報(bào)告?zhèn)鬏數(shù)奖O(jiān)視服務(wù)器,而不是發(fā)送到Winqual。您甚至不必使用Active Directory集成和組策略,但可以手動(dòng)配置WER注冊(cè)表項(xiàng)來(lái)指定CorporateWERServer(使用您喜歡的端口和安全選項(xiàng))。

另一種利用WER的方法是在本地保存報(bào)告。在本文的其余部分中,我假設(shè)WER是enables(默認(rèn)設(shè)置)。

正如我所說,WER試圖收集盡可能少的數(shù)據(jù),并要求更多只有在必要時(shí)。但是可以配置此行為。如果需要在每次崩潰時(shí)收集轉(zhuǎn)儲(chǔ),可以將HKEY_CURRENT_USERSoftwareMicrosoftWindowsWindows Error ReportingForceQueue設(shè)置為1(或?qū)KLMSoftwareMicrosoftWindowsWindows Error ReportingForceQueue設(shè)置為1,以全局應(yīng)用設(shè)置)。這將強(qiáng)制生成轉(zhuǎn)儲(chǔ)并包含在報(bào)表中。報(bào)表通常保存在%localAppData%MicrosoftWindowsWER的兩個(gè)目錄中:ReportArchive(當(dāng)服務(wù)器可用時(shí))或ReportQueue(當(dāng)服務(wù)器不可用時(shí))。從這里,數(shù)據(jù)被傳輸?shù)椒?wù)器。查看生成的報(bào)告內(nèi)容的另一種方法是使用wercon.exe(如上所述)。如果您想在本地保持?jǐn)?shù)據(jù),只需將服務(wù)器設(shè)置為一個(gè)非現(xiàn)有的機(jī)器(HKEY-LoalAlxMaultStudio\微軟Windows Windows錯(cuò)誤報(bào)告CytAtWiServer=Nosiver Server)。

現(xiàn)在如果你想在不同的情況下生成崩潰的報(bào)告呢?可能您正在監(jiān)視事件日志或某些性能計(jì)數(shù)器(如CPU或內(nèi)存),并希望查看違反條件時(shí)會(huì)發(fā)生什么。或者您希望生成的數(shù)據(jù)不僅僅是轉(zhuǎn)儲(chǔ)(例如,您的應(yīng)用程序有一個(gè)要保存的跟蹤文件,或者您希望復(fù)制事件日志條目等)?好吧,你很幸運(yùn),因?yàn)閃ER有你可以使用的API。使用此API,只要滿足所需條件,就可以:

使用WerReportCreate創(chuàng)建報(bào)表
使用WerReportAddDump進(jìn)行轉(zhuǎn)儲(chǔ)
使用WerReportAddFile添加其他感興趣的文件
最多設(shè)置10個(gè)參數(shù),可用于對(duì)故障進(jìn)行分類(故障程序、故障函數(shù)、堆棧跟蹤,以及您認(rèn)為有助于調(diào)查此問題的任何參數(shù))
關(guān)閉并與WerReportSubmit一起提交報(bào)告

有一件事你必須記住,那就是WerReportAddDump在進(jìn)行轉(zhuǎn)儲(chǔ)時(shí)會(huì)一個(gè)接一個(gè)地掛起線程。這無(wú)法確保內(nèi)存視圖的一致性—一個(gè)線程可以掛起,然后當(dāng)下一個(gè)線程掛起時(shí),可能會(huì)更改內(nèi)存或造成其他損壞;如果應(yīng)用程序有很多線程,這尤其麻煩。如果需要一致的視圖,您有責(zé)任掛起所有線程。另外,最好在進(jìn)程外調(diào)用此函數(shù)。
好的,現(xiàn)在您知道了如何使用WER在發(fā)生故障時(shí)始終生成轉(zhuǎn)儲(chǔ),將報(bào)告發(fā)送到您指定的服務(wù)器或在本地對(duì)其進(jìn)行排隊(duì),并生成自定義報(bào)告。希望您會(huì)發(fā)現(xiàn)這些信息對(duì)調(diào)試和監(jiān)視與應(yīng)用程序相關(guān)的問題很有用。

總結(jié)

以上是生活随笔為你收集整理的面向开发人员的Windows错误报告(WER)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。