如何創建一個單獨的崩潰處理程序,如GoogleCrashHandler?創建單獨的崩潰處理程序,如GoogleCrashHandler - C#
回答
Google崩潰處理程序似乎是在其他應用程序中發生某些情況時得到通知的應用程序。
「如果您選擇向某些Google軟件(例如Google Chrome)發送匿名使用情況統計信息和崩潰報告,GoogleCrashHandler.exe可以在您的計算機上持續運行,它有助於在您的Google軟件意外發送時向Google發送崩潰詳細信息關閉我們使用這些數據來幫助確定如何防止這些錯誤在未來發生「
我會創建一個Windows服務,在後臺運行,通過命名管道,tcp,文件放置或其他任何好方法。
然後該服務會將收集到的信息發送到特定服務器(或服務器列表) 。它可以作爲一個緩衝區,所以你不必每次在內部得到通知時都向服務器發送通知。
當服務器準備好泄漏它的bean時,我會讓服務調用服務器上的Web服務。
創建之後應該能夠檢查,如果你的「崩潰處理」正在運行,並在適當的時候通知其有關錯誤或異常等,每個應用程序
然而,因爲這種行爲可能會跳閘,一些地方的防火牆程序,用戶可能會質疑哪些數據正在發送以及什麼時候發生,您需要記錄這些數據,並且非常清楚您正在收集哪些數據,爲什麼要收集數據以及發送數據的位置。
同意。我認爲使用文件系統監視器來查看其他程序的崩潰報告的Windows服務將是最簡單的實現。 – smencer 2010-03-09 00:00:01
這適用於非託管代碼(Google的所有代碼都是)。通常情況下,應用程序會打開一個命名管道與崩潰處理程序對話並告訴它開始觀看應用程序。崩潰處理程序然後將一個命名的事件添加到它觀看的列表中。當應用程序崩潰時,使用SetUnhandledExceptionFilter()安裝的應用程序中的異常過濾器將獲得控制權。該異常過濾器然後打開命名的事件。崩潰處理程序會立即發出通知,並且需要崩潰的應用程序的小型轉儲程序並上傳它。並終止該應用程序。
像這樣的崩潰處理程序是必要的,因爲崩潰的應用程序不能被信任,以便在心臟病發作時仍能正常運行。微軟也有一個,它是在Windows中構建的。稱爲WER,Windows錯誤報告。當碰撞應用詢問你是否可以讓微軟知道崩潰時,這就是你看到的對話框的來源。
對於託管應用程序,這種方法是不必要的。它們幾乎不會死於非託管應用程序死亡的硬件異常(如AccessViolation)。只需編寫AppDomain.UnhandledException事件的代碼即可。
我希望我可以檢查2個答案。 – jaysonragasa 2010-03-09 06:44:06
- 1. 該程序創建目標c + +崩潰
- 2. PySide程序崩潰處理程序
- 3. 崩潰處理程序打印回溯
- 4. C#程序崩潰
- 5. C++程序崩潰
- 6. C#程序崩潰
- 7. 處理JNI崩潰
- 8. 簡單的C程序崩潰
- 9. Bullet物理程序崩潰
- 10. 崩潰在樹視圖c中移動treenode處理程序#
- 11. 如何處理硒崩潰
- 12. C++:創建對象時我的程序崩潰了
- 13. C#,在單獨的線程中執行事件處理程序
- 14. 從獨立程序創建共享庫 - 如何處理「int main()」?
- 15. VC++異常處理 - 應用程序崩潰無論如何
- 16. 如何在Android進程崩潰時創建崩潰日誌
- 17. 如何處理main.m中發佈的應用程序崩潰?
- 18. RNG崩潰C++程序
- 19. C++/QT:QTextStream程序崩潰
- 20. qsort崩潰程序 - C
- 21. C程序崩潰後strcpy
- 22. C++ openGL VBO崩潰程序
- 23. 程序崩潰
- 24. 如何在C++中處理Windows 8 metro應用程序中的崩潰?
- 25. 爲不同的用戶創建單獨的處理程序 - WCF聊天
- 26. C程序設計 - 程序崩潰
- 27. 如何在應用程序崩潰時處理
- 28. 處理信號後Perl進程崩潰
- 29. 後臺完成處理程序崩潰的應用程序,如果完成PushViewController
- 30. 如何在TextView Array中單獨處理動態創建的textview?
這是一個相當普遍的問題。你有特定的問題嗎?或者你只是想要一些方向來幫助你開始?開始構建這樣的東西通常會更好,然後在代碼中遇到問題時提問。 – 2010-03-08 23:52:51