服務程序排錯技巧
調試信息輸出 如 OutputDebugString
通常在開發或者測試使用。
行時日誌
考慮單日誌或者多日誌文件
異常捕獲 try expect
內嵌彙編,棧內存被覆蓋會沒用
異常捕獲 minidump 如 SetUnhandledExceptionFilter
異常捕獲,(運行時庫?)奔潰不會捕獲,用minidump傳給服務器。
因爲服務管理器定時查服務管理器狀態,然後暫停太久就把其關閉,所以下面調試器查錯不能停太久
IDE調試
想在入口點下斷,一般在service_Main睡眠,然後attach他。
OD調試
當服務在用戶機器上,普通進程,使用OD
比如可以字符串檢索。
Windbg應用層調試
兼容性強與OD
Windbg內核調試
出現在比較多的同步操作,消息傳遞。內核調試可以凍結掉時間。容易調試同步。
運行時日誌
可以亦或個數,顯示不那麼明顯
異常捕獲 minidump 如 SetUnhandledExceptionFilter
功能開關
將某些功能設置功能開關,在服務器上保存。