IntelliTrace(智慧型追蹤)是 Visual Studio 2010 Ultimate 版獨有的歷史除錯引擎,它記錄程式執行過程中的關鍵事件與方法呼叫,讓開發者能「時光倒流」檢查過去的狀態,大幅縮短找 Bug 週期。本文詳細說明設定、資料收集模式、iTrace 檔案分析、Call View 導航與自訂事件擴展。
工具 → 選項 → IntelliTrace → 一般,勾選「啟用 IntelliTrace」。
| 模式 | 收集內容 | 效能影響 | 適用場景 |
|---|---|---|---|
| 僅 IntelliTrace 事件 | 斷點、例外、檔案/登錄存取、資料庫查詢、模組載入、執行緒啟停等預定義事件 | 極低 | 日常除錯、生產環境附加、長時間執行 |
| 事件 + 呼叫資訊 | 以上所有事件 + 每個方法進入/離開的參數值、回傳值、this 狀態 | 顯著(記憶體、CPU、磁碟 I/O) | 複雜邏輯追蹤、多執行緒競態、難以重現的 Bug |
建議:預設使用「僅事件」;遇到棘手問題時切換至「事件 + 呼叫資訊」並限制模組範圍(見下文)。
工具 → 選項 → IntelliTrace → 模組,指定只收集特定組件(如 MyApp.*)的事件,排除系統/第三方組件,大幅減少資料量與干擾。
工具 → 選項 → IntelliTrace → 進階:
C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebugging\
啟用「事件 + 呼叫資訊」模式後,IntelliTrace 視窗切換至 Call View 標籤,呈現巢狀方法呼叫樹:
.iTrace 格式可擴展,透過 Microsoft.VisualStudio.IntelliTrace SDK 撰寫自訂事件收集器(如業務關鍵點、效能計數器),整合至 VS 除錯體驗。詳細請參考 MSDN:擴展 IntelliTrace。
測試人員在無 VS 環境機器上執行測試,收集 .iTrace + 符號檔(.pdb)+ 組件,傳給開發者。開發者在 VS 中開啟 .iTrace 即可完整重演現場,無需重現環境、資料、網路條件。
IntelliTrace 將除錯從「單步試錯」提升為「歷史重演」,配合模組篩選、兩種收集模式彈性切換、Call View 深度導航,是 VS 2010 Ultimate 版最具價值的生產力工具之一。升級 VS 2019/2022 後,歷史除錯功能更名為「IntelliTrace 歷史除錯」並持續增強(支援 .NET Core、容器、雲端部署),核心理念不變:記錄過去,診斷當下,預防未來。