寫一個Windows上的守護進程(7)捕獲異常並生成dump 誰都不能保證自己的代碼不出bug。一旦出了bug,最好是崩潰掉,這樣很快就能被發現,若是不崩潰,只是業務處理錯了,就麻煩了,可能很長時間之后才能被發現。 那么如果崩潰掉,怎么查錯呢? 寫過Windows驅動的同學應該知道,一旦崩潰 ...
一兩個月前為產品寫了一個獨立的exe,由於產品使用的捕獲dump是一個現成的進程外exe,如果以資源的方式集成它容易出現安全警告,由於時間關系沒有尋求新的解決方法,還是遵循舊方案,不捕獲dump。 最近業余看了會兒breakpad client,想到一個解決方案 其實也蠻簡單的,最后exe大概會增加 多KB。下邊從頭分析。 有這樣一種需求,希望一個進程啟動之后,有另一個進程來 守護 它,當它發生 ...
2013-08-31 17:38 0 4383 推薦指數:
寫一個Windows上的守護進程(7)捕獲異常並生成dump 誰都不能保證自己的代碼不出bug。一旦出了bug,最好是崩潰掉,這樣很快就能被發現,若是不崩潰,只是業務處理錯了,就麻煩了,可能很長時間之后才能被發現。 那么如果崩潰掉,怎么查錯呢? 寫過Windows驅動的同學應該知道,一旦崩潰 ...
一般要捕獲異常只需要兩個函數: SetUnhandledExceptionFilter截獲異常; MiniDumpWriteDump寫dump文件。但是由於CRT函數可能會在內部調用SetUnhandledExceptionFilter(NULL),解除我們程序設置的異常處理 ...
在筆記本端部署服務時,有時會遇到斷網、硬件設備掉線等情況,需要重新啟動服務,覺得較為麻煩。想仿照linux下的腳本,寫一個windows下的腳本,守護進程,自動檢查自啟動。 windows下的腳本為.bat文件,下面以啟動***.exe文件為例,protect_process.bat ...
breakpad是Google開源的一套跨平台工具,用於dump的處理。很全的一套東西,我這里只簡單涉及breakpad客戶端,不涉及純文本符號生成,不涉及dump解析。 一、使用 最簡單的是使用進程內dump捕獲,使用者只需要跟ExceptionHandler打交道,在自己的程序里 ...
通常通過進程名稱或者端口號來判斷進程是否正在運行。但是windows下進程名常常難以區分,比如有兩個python腳本程序A和B同時在執行,進程名都是python.exe。若是通過端口來區分,卻又只適用帶有端口監聽的程序,比如某進程監聽6379,可能該端口被很多程序同時監聽。怎么做到細化守護 ...
開發部的一個核心程序總是會自己宕機,然后需要手工去起,而這個服務的安全級別又很高,只有我可以操作,搞得我晚上老沒法睡,昨晚實在受不了了,想起以前在hp-ux下寫的shell守護進程,這回搞個windows下的bat版守護程序吧,當時晚上思路已經很遲鈍了,就叫了個兄弟讓他寫了,上去后運行效果 ...
開發部的一個核心程序總是會自己宕機,然后需要手工去起,而這個服務的安全級別又很高,只有我可以操作,搞得我晚上老沒法睡,昨晚實在受不了了,想起以前在hp-ux下寫的shell守護進程,這回搞個windows下的bat版守護程序吧,當時晚上思路已經很遲鈍了,就叫了個兄弟讓他寫了,上去后運行效果不錯 ...
寫的shell守護進程,這回搞個windows下的bat版守護程序吧,當時晚上思路已經很遲鈍了,就叫了 ...