使用Debug Diagnostic Tool (DebugDiag)找出應用程式錯誤(0xc00000fd:stack overflow)
個人負責維護的網站在平時運行正常,但每遇到業務旺季,上線人數變多時,伺服器就會跳出錯誤提醒,問說要不要除錯。 進入事件檢視器,看到錯誤事件的內容: 雖然知道錯誤是0xc00000fd:stack overflow,但不曉得是哪支程式或是哪個function造成,從朋友那邊得知DebugDiag這個工具可以收集Dump資訊,並分析錯誤,立馬下載實作。 設定收集規則 1.安裝好後,點選DebugDiag 2 Collection 2.點選新增規則→選擇規則類型,因為要捕捉Crash的dumps,所以就選Crash→下一步 3.選擇目標類型,因為已鎖定要補捉應用程式集區的錯誤,所以就選「A specific IIS web application pool」→下一步 4.設定目標應用程式集區→下一步 5.進階設定→調整dump數量上限,預設是10個,依需求自行調整,要注意數量越多,所需的儲存空間越大→因為已鎖定特定事件(0xc00000fd:stack overflow),所以點選「Exceptions…」 6.點選新增例外事件 7.選擇例外事件代碼→C00000FD→按ok 8.按下Save & Close,完成例外事件設定 9.點選下一步 10.完成規則設定,選擇是否立即啟用規則,按完成 11.完成後在介面可以看到設定的規則,然後就放著等待錯誤發生。 分析捕捉到的dump檔 1.點選DebugDiag 2 Analysis 2.分析視窗→先加入dump檔→再勾選要做的分析,這邊勾Default Analysis→按Start Analysis 3.分析完畢會產出報告,檔案格式為.mht,Report預設目錄在C:\Users\{username}\Documents\DebugDiag\Report。 最後從報告中找到了造成Stack Overflow的錯誤點,解決了這個困擾我許久的問題,真是太開心了(撒花)。