首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Visual Studio 2010 IntelliTrace 歷史除錯完整指南:從事件追蹤到呼叫堆疊重演

     編輯:關於.NET

IntelliTrace(智慧型追蹤)是 Visual Studio 2010 Ultimate 版獨有的歷史除錯引擎,它記錄程式執行過程中的關鍵事件與方法呼叫,讓開發者能「時光倒流」檢查過去的狀態,大幅縮短找 Bug 週期。本文詳細說明設定、資料收集模式、iTrace 檔案分析、Call View 導航與自訂事件擴展。

一、啟用與基本設定

工具 → 選項 → IntelliTrace → 一般,勾選「啟用 IntelliTrace」。

IntelliTrace 設定

二、兩種收集模式權衡

模式收集內容效能影響適用場景
僅 IntelliTrace 事件斷點、例外、檔案/登錄存取、資料庫查詢、模組載入、執行緒啟停等預定義事件極低日常除錯、生產環境附加、長時間執行
事件 + 呼叫資訊以上所有事件 + 每個方法進入/離開的參數值、回傳值、this 狀態顯著(記憶體、CPU、磁碟 I/O)複雜邏輯追蹤、多執行緒競態、難以重現的 Bug

建議:預設使用「僅事件」;遇到棘手問題時切換至「事件 + 呼叫資訊」並限制模組範圍(見下文)。

三、模組篩選:聚焦關鍵程式碼

工具 → 選項 → IntelliTrace → 模組,指定只收集特定組件(如 MyApp.*)的事件,排除系統/第三方組件,大幅減少資料量與干擾。

模組篩選

四、進階設定:儲存位置與大小限制

工具 → 選項 → IntelliTrace → 進階:

  • 預設儲存:C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebugging\
  • 單一 .iTrace 檔案上限:250 MB(可調整)。
  • 循環覆寫模式避免佔滿磁碟。
進階設定

五、實戰:除錯工作流

  1. 啟動除錯(F5),IntelliTrace 視窗自動開啟(偵錯 → 視窗 → IntelliTrace)。
  2. 程式觸發斷點或例外時,IntelliTrace 記錄時間軸事件。
  3. 點擊例外事件 → 「啟動歷史除錯」 → 視覺化呈現呼叫堆疊、區域變數、this 狀態,彷彿當下停在該行。
事件收集 例外詳情與呼叫堆疊 歷史除錯現場還原

六、Call View:方法呼叫導航

啟用「事件 + 呼叫資訊」模式後,IntelliTrace 視窗切換至 Call View 標籤,呈現巢狀方法呼叫樹:

  • 展開節點查看參數、回傳值、執行耗時。
  • 雙擊任意呼叫 → 歷史除錯定位至該幀。
  • 支援多執行緒切換,追蹤平行邏輯。
Call View 方法呼叫樹

七、自訂 IntelliTrace 事件

.iTrace 格式可擴展,透過 Microsoft.VisualStudio.IntelliTrace SDK 撰寫自訂事件收集器(如業務關鍵點、效能計數器),整合至 VS 除錯體驗。詳細請參考 MSDN:擴展 IntelliTrace。

八、團隊協作:.iTrace 檔案分享

測試人員在無 VS 環境機器上執行測試,收集 .iTrace + 符號檔(.pdb)+ 組件,傳給開發者。開發者在 VS 中開啟 .iTrace 即可完整重演現場,無需重現環境、資料、網路條件。

結語

IntelliTrace 將除錯從「單步試錯」提升為「歷史重演」,配合模組篩選、兩種收集模式彈性切換、Call View 深度導航,是 VS 2010 Ultimate 版最具價值的生產力工具之一。升級 VS 2019/2022 後,歷史除錯功能更名為「IntelliTrace 歷史除錯」並持續增強(支援 .NET Core、容器、雲端部署),核心理念不變:記錄過去,診斷當下,預防未來。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved