软件Release版本异常捕获程序(BugReport)
生活随笔
收集整理的這篇文章主要介紹了
软件Release版本异常捕获程序(BugReport)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
軟件Release版本異常捕獲程序(BugReport) http://wangzai9931.blog.51cto.com/168627/164084
2009-06-08 23:09:43 標簽:BugReport?Release?異常捕獲 一.設計目的 由于很多的軟件產品,會不時的遇到一些異常崩潰的情況,而有時候,這個問題又不時總能重現,導致開發人員無法跟進此Bug;另一方面,在我們的軟件產品發布出去之后,客戶在使用過程中,也會遇到一些這樣的情況,而一旦這樣的情況發生之后,軟件會毫不猶豫的彈出Windows錯誤并無情的結束程序。本程序的設計的目的就是為了解決這樣的問題,在軟件出問題的情況下,記錄下發生的異常的詳細信息,同時提供更為友好的用戶界面,由用戶自由的選擇是否將記錄下來的異常的信息寄給我們。接下來,我們只要根據用戶提供的異常信息,分析Bug,并解決它! 二.原理 設置自己的最終的Exception Handle,所有未捕獲的異常發生時,都會調用到這里,在這里,記錄下當前的一些環境信息和異常的信息。 LONG WINAPI UnhandledExceptionFilter(?
????????????????PEXCEPTION_POINTERS pExceptionInfo?
)????
{?
????????// 記錄下詳細的異常信息和當前的環境信息?
????????......?
}?
SetUnhandledExceptionFilter(UnhandledExceptionFilter) 三.實現 該程序由BugReport.dll和BugReport.exe組成。BugReport.dll實現在異常發生之后,將異常相關的信息捕抓到文件BugDetail.dat文件中,之后啟動BugReport.exe,傳入參數BugDetail.dat的路徑,由BugReport.exe提供友好的界面給用戶,并提供用戶選擇是否將該文件寄給軟件的維護人員。 BugReport.dll : 詳細的實現過程見源碼。 四.使用 本程序提供3個文件:BugReport.dll,BugReport.exe,LoadBugReport.h . 1.新建工程 2.Include LoadBugReport.h 3.將BugReport.dll,BugReport.exe復制到生成文件的相同目錄(也可不用,不過不同目錄,早Load時,參數傳入路徑) 4. 加載&啟動 CLoadBugReport::Instance().LoadLibrary();
??? ?CLoadBugReport::Instance().BootReport(); 5. 完成,這時候,如果程序中出現未捕獲的異常,將運行BugReport.exe。 五.測試界面 一旦程序異常,將彈出: 用戶點擊“發送”,即可將異常信息寄到相應的位置,此功能沒有實現,之后根據相應的需求來實現該功能。 用戶可以點擊“點擊查看詳情”,將顯示:
附件下載:
BugReport
下載地址(csdn資源): http://download.csdn.net/detail/jiftlixu/4022397
與50位技術專家面對面20年技術見證,附贈技術全景圖
2009-06-08 23:09:43 標簽:BugReport?Release?異常捕獲 一.設計目的 由于很多的軟件產品,會不時的遇到一些異常崩潰的情況,而有時候,這個問題又不時總能重現,導致開發人員無法跟進此Bug;另一方面,在我們的軟件產品發布出去之后,客戶在使用過程中,也會遇到一些這樣的情況,而一旦這樣的情況發生之后,軟件會毫不猶豫的彈出Windows錯誤并無情的結束程序。本程序的設計的目的就是為了解決這樣的問題,在軟件出問題的情況下,記錄下發生的異常的詳細信息,同時提供更為友好的用戶界面,由用戶自由的選擇是否將記錄下來的異常的信息寄給我們。接下來,我們只要根據用戶提供的異常信息,分析Bug,并解決它! 二.原理 設置自己的最終的Exception Handle,所有未捕獲的異常發生時,都會調用到這里,在這里,記錄下當前的一些環境信息和異常的信息。 LONG WINAPI UnhandledExceptionFilter(?
????????????????PEXCEPTION_POINTERS pExceptionInfo?
)????
{?
????????// 記錄下詳細的異常信息和當前的環境信息?
????????......?
}?
SetUnhandledExceptionFilter(UnhandledExceptionFilter) 三.實現 該程序由BugReport.dll和BugReport.exe組成。BugReport.dll實現在異常發生之后,將異常相關的信息捕抓到文件BugDetail.dat文件中,之后啟動BugReport.exe,傳入參數BugDetail.dat的路徑,由BugReport.exe提供友好的界面給用戶,并提供用戶選擇是否將該文件寄給軟件的維護人員。 BugReport.dll : 詳細的實現過程見源碼。 四.使用 本程序提供3個文件:BugReport.dll,BugReport.exe,LoadBugReport.h . 1.新建工程 2.Include LoadBugReport.h 3.將BugReport.dll,BugReport.exe復制到生成文件的相同目錄(也可不用,不過不同目錄,早Load時,參數傳入路徑) 4. 加載&啟動 CLoadBugReport::Instance().LoadLibrary();
??? ?CLoadBugReport::Instance().BootReport(); 5. 完成,這時候,如果程序中出現未捕獲的異常,將運行BugReport.exe。 五.測試界面 一旦程序異常,將彈出: 用戶點擊“發送”,即可將異常信息寄到相應的位置,此功能沒有實現,之后根據相應的需求來實現該功能。 用戶可以點擊“點擊查看詳情”,將顯示:
| 0人 | 了這篇文章 |
附件下載:
BugReport
下載地址(csdn資源): http://download.csdn.net/detail/jiftlixu/4022397
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的软件Release版本异常捕获程序(BugReport)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库文档生成数据库脚本工具
- 下一篇: 找不到atlapp.h的解決方法