IntelliTrace 是 Visual Studio 2010 Ultimate 版標誌性功能,將除錯從「當下觀察」昇級為「歷史重演」。它自動記錄程式執行中的關鍵事件(例外、檔案存取、資料庫查詢、模組載入、執行緒切換)與可選的方法呼叫細節,生成 .iTrace 檔案供事後分析。本文系統梳理其架構、設定、實戰工作流與團隊協作價值。
傳統除錯:遇到 Bug → 設中斷點 → 重現 → 檢查狀態 → 若中斷點設錯需重來。
IntelliTrace:直接啟動除錯 → 程式自然執行 → 發生例外/停在斷點 → 回溯歷史事件、呼叫堆疊、變數值,無需重現。
| 模式 | 收集範圍 | 效能開銷 | 建議場景 |
|---|---|---|---|
| 僅 IntelliTrace 事件 | 預定義事件(例外、I/O、資料庫、斷點等) | 極低(<5%) | 日常開發、長時間執行、生產環境附加 |
| 事件 + 呼叫資訊 | 以上事件 + 所有方法進入/離開參數、回傳值、this | 高(記憶體、CPU、磁碟) | 疑難雜症、多執行緒、非確定性 Bug |
MyCompany.*)的事件,排除 .NET Framework、第三方庫,大幅減少噪音與資料量。
啟用「事件 + 呼叫資訊」後,切換至 Call View 標籤,呈現巢狀呼叫樹:
透過 Microsoft.VisualStudio.IntelliTrace SDK 實作 IIntelliTraceEvent、IEventCollector,可記錄業務關鍵點(如「訂單建立」、「付款失敗」)、效能計數器、自訂物件狀態,整合至 VS 除錯體驗。
VS 2019/2022 將功能更名為 IntelliTrace 歷史除錯,新增支援:.NET Core、Docker 容器、Azure 雲端部署快照、即時生產環境快照除錯(Snapshot Debugger)。核心理念不變:記錄過去,診斷當下,預防未來。
IntelliTrace 不是銀彈,但它將除錯從「藝術」轉化為「工程」:配合模組篩選、兩種模式彈性切換、.iTrace 可攜式現場、Call View 深度導航,讓團隊能以最低成本定位最棘手的 Bug。擁有 Ultimate/Enterprise 授權的團隊,應將其納入標準除錯流程與 CI/CD 品質閘門。