使用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的錯誤點,解決了這個困擾我許久的問題,真是太開心了(撒花)。


留言

這個網誌中的熱門文章

工具-使用Notepad++編輯XML文件

不負責的Google Drive 介面語系問題排解

LimeSurvey安裝筆記