這是一個有點複雜的問題,有幾個問題。隨意回答只有你有答案的問題。自定義錯誤報告(XP及以上)
我有一個任務,在我們幾個組件的Windows例外情況下創建小型轉儲,並支持XP SP3作爲最小操作系統。組件包括:
- 獨立C++應用
- CSP和PKCS11庫(DLL的),以公知的瀏覽器上使用
- 一個UI和一個非UI服務
- 靜態庫,這是在所有使用的前三點
要求是有類似WER(從XP開始),但發送報告給專門的供應商服務器,而不是微軟當前的Winqual等價物。這將是非常好的報告功能可以包裝在一個靜態庫。
雖然有問題。 DLL是特殊的野獸。如何僅在DLL代碼中發生錯誤時生成報告?服務也可能需要一些特殊處理,目前我還沒有意識到。
首先,有沒有一個已知的開源庫可以幫助我完成這個任務?如果沒有,我不得不推出自己的。
我的第一個想法是在每個模塊中都有一個睡眠監視器線程。此線程僅等待事件,該事件將從unhandled exception filter設置。該線程將生成使用MiniDumpWriteDump的報告,通過互聯網發送並完成,並在提到的過濾器中等待線程結束,然後終止該過程。對此解決方案有什麼想法?例如,本地系統帳戶下的Windows服務可以訪問互聯網嗎?
在Windows 7中,您可以配置WER以將轉儲保存在指定的位置。也許在Vista也是如此。不知道XP。然後,無論何時何地,只要您想要,您都可以發送垃圾郵件。 – 2012-04-25 10:42:25