IntelliTrace調試


當您進行調試時,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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM