當您進行調試時,IntelliTrace 將在后台收集有關托管應用程序的數據,其中包括來自許多框架組件(例如 ADO.NET、ASP.NET 和 System.XML)的信息。這些 IntelliTrace 事件使開發人員能夠查看先前在執行過程中發生的情況,並且最重要的是,能夠進行“回溯”以查看應用程序的先前狀態,而不必重新啟動調試器。當我進入調試器時,我立即看到了按順序列出的以前收集的 IntelliTrace 事件, IntelliTrace窗口允許按類別或按線程對所收集事件的列表進行篩選。此外,我可以執行基於文本的搜索來查找可快速跳轉到的重要事件。由於 IntelliTrace 還會收集異常,因此我可以搜索詞條“異常”,列表將進行篩選以列出導致出現 ASP.NET 錯誤頁的異常,既包括在其中引發的異常調出IntelliTrace窗口快捷鍵Ctrl+D,V
1、默認設置為 僅收集事件(如圖1),在 工具--選項-IntelliTrace中可以修改設置
默認情況下,IntelliTrace 配置為僅收集 IntelliTrace 事件。此解決方案開銷很低,但不會提供應用程序的完整執行歷史記錄。如果您需要更深層的信息,則可以配置 IntelliTrace 來收集更多數據。像其他調試器設置一樣,IntelliTrace 也可通過“選項”對話框(可從“工具”菜單中訪問)進行配置(請參見圖 1)。

圖1 默認設置
| 類別 | 描述和收集的數據 |
| ADO.NET | 與針對 SQL 執行查詢、執行的命令以及連接字符串相關的事件。 |
| MVC | 與 ASP.NET 管道以及請求處理和重定向相關的事件。 |
| 控制台 | 控制台輸出。 |
| 數據綁定 | Windows 窗體數據綁定。 |
| 環境變量 | 對進程中的環境變量進行求值和檢索。 |
| 文件 | 創建、刪除和訪問文件。 |
| 手勢/ 特定動作 | 用戶對 Web 窗體、Windows 窗體和 WPF 中的常見控件執行的操作。除了收集有關與控件的交互的數據之外,單擊其中一個事件還會自動將您重定向到相應的事件處理程序。 |
| 遲緩初始化 | 初始化延遲加載的變量。 |
| 注冊表 | 創建、刪除和查詢注冊表信息。 |
| 服務模型 | 從 WCF 中進行的 Web 服務調用。 |
| 線程處理 | 用戶工作項和並行計算任務的排隊。 |
| 跟蹤 | 調試器跟蹤輸出和斷言。 |
| 用戶提示 | 顯示 Windows 窗體和 WPF 消息框以及對話框的結果。 |
| 工作流 | 實例化和完成活動。 |
| XML | XML 文件加載。 |
圖 2 重點列出了一些 IntelliTrace 所收集事件的類別。
使用例子,在datagirdview中加載數據:
private void Form1_Load(object sender, EventArgs e) { dgvList.Rows.Clear(); List<Model.m_Car> lst = new BLL.m_Car().GetModelList("i_Flag=0"); foreach (Model.m_Car item in lst) { int i = dgvList.Rows.Add(item.vc_name, item.vc_remark); dgvList.Rows[i].Tag = item; } dgvList.ClearSelection(); //此處加斷點 }
點擊要查看的事件,會看到詳細信息(圖3),並在局部變量(圖4)和調用堆棧(圖5)中顯示信息
圖3 智能跟蹤窗口(查看數據庫訪問事件)
圖4 局部變量(顯示sql語句,數據庫連接信息)
圖5 調用堆棧(點擊相應的調用命令,會定位到源代碼中,但是此處沒收集調用信息,所以strWhere是未知的)
2、收集事件及調用信息
通過選擇“IntelliTrace 事件和調用信息”,可將 IntelliTrace 配置為不僅收集 IntelliTrace 事件,而且在每個方法進入、退出和調用站點時收集調用信息,例如位於這些位置的參數和返回值。
由於存在性能問題,因此默認情況下只會為集合啟用定義的 IntelliTrace 事件的一個子集。您可能需要考慮啟用的某些事件包括控制台輸出、文件訪問、遲緩初始化、注冊表訪問以及線程處理事件。您可以從“選項”對話框的“IntelliTrace 事件”窗格中啟用或禁用整個事件類別或個別事件。

圖6 收集事件及調用信息,可以回放調用歷史
2.1 事件視圖,調用視圖
還是剛才的例子,啟動調試,智能跟蹤窗口如圖7,和圖3不同的是,智能跟蹤窗口頂端有《切換到調用視圖的按鈕》

圖7 智能跟蹤窗口
點擊切換后如圖8,顯示調用歷史信息,通過瀏覽“調用”視圖這種機制,可以快速了解執行歷史記錄的概況,並在代碼庫中進行大幅跳轉。
圖8 調用歷史信息
2.2 單步回放歷史執行記錄控件
在源代碼窗口的裝訂線中會出現這樣的控件,能夠單步執行應用程序,並且在局部變量窗口看到每一步值的變化
圖9

圖10
圖11 也可以通過點擊《在此設置調試上下午》,出現圖9的控件,執行單步調試
2.3 在 IntelliTrace 中搜索此行, 搜索功能使我能夠恰好跳轉到特定的函數調用
在編輯器中,我可以右鍵單擊要搜尋的行,並從上下文菜單中選擇“在 IntelliTrace 中搜索此行”(請參見圖 12)。搜索將開始,並且結果將呈現在編輯器窗口頂部的搜索欄中,請參見圖 13)。

圖12 搜索功能使我能夠恰好跳轉到特定的函數調用
圖13
參見
http://msdn.microsoft.com/zh-cn/magazine/ee336126.aspx
http://msdn.microsoft.com/zh-cn/library/dd572114.aspx
http://msdn.microsoft.com/zh-cn/library/dd264963.aspx#Open
