使用 IntelliTrace 記錄檔 (.iTrace) 偵錯應用程式
您可以直接從 IntelliTrace 記錄檔 (.iTrace) 啟動 IntelliTrace 偵錯工作階段。 這個檔案包含 IntelliTrace 在應用程式執行時記錄的例外狀況、Web 要求、執行緒、測試資料、模組及其他系統資訊。
監看在動作中的 IntelliTrace:
需求
來自下列其中一個來源的 .iTrace 檔案:
在 Visual Studio Ultimate 中的 IntelliTrace 工作階段。 請參閱 在 Visual Studio 中使用 IntelliTrace 錄製程式碼執行以偵錯。
Microsoft Test Manager 中的測試工作階段。 這會將 .iTrace 檔案附加至 Team Foundation Server 工作項目。 請參閱 HOW TO:收集 IntelliTrace 資料以協助偵錯困難的問題。
在 Visual Studio 外執行之應用程式的獨立收集器。 請參閱 使用獨立的收集器在 Visual Studio 外部收集 IntelliTrace 資料。
Visual Studio 2012.1:System Center 2012 Service Pack 1 (SP1) 監視的應用程式 (含 IntelliTrace 分析管理組件的 Operations Manager) 請參閱如何在 System Center 2012 中設定與 IntelliTrace 的整合。
在開發電腦或其他要開啟 .iTrace 檔案之電腦上的 Visual Studio Ultimate
注意事項 若要使用 IntelliTrace 偵錯和逐步執行程式碼,您必須具有相符的原始程式檔和符號檔。請確定符號檔案在 Visual Studio 符號路徑中。否則,Visual Studio 無法解析來源位置並會顯示訊息「找不到符號」。請參閱 尋找符號 (.pdb)、來源和二進位檔案。
您想要怎麼做?
開啟 IntelliTrace 記錄檔
閱讀 IntelliTrace 記錄檔
從 IntelliTrace 記錄檔開始偵錯
開啟 IntelliTrace 記錄檔
在具有 Visual Studio Ultimate 的電腦上,開啟 .iTrace 檔案。
按兩下 Visual Studio 之外的 .iTrace 檔案,或從 Visual Studio 內開啟檔案。
-或-
如果 .iTrace 檔案是附加至 Team Foundation Server 工作項目,請在工作項目中依照下列步驟執行:
在 [所有連結] 下方,尋找 .iTrace 檔案。 開啟它。
-或-
在 [重新產生步驟] 底下,選擇 [IntelliTrace] 連結。
提示
如果您在偵錯期間關閉了 .iTrace 檔案,您可以輕易地重新開啟它。移至 [偵錯] 功能表,選擇 [IntelliTrace]、[顯示記錄檔摘要]。您也可以選取 [IntelliTrace] 視窗的 [顯示記錄檔摘要]。只有在使用 IntelliTrace 偵錯時,才能使用這個選項。
閱讀 IntelliTrace 記錄檔
.iTrace 檔案中的下列某些區段,只有在您從特定來源 (例如,使用獨立收集器的 Test Manager 或 SharePoint 2010 應用程式) 收集資料時才會出現。
章節 |
包含 |
來源集合 (Visual Studio Ultimate、Test Manager、獨立收集器) |
---|---|---|
分析 |
僅適用於 SharePoint 2010 應用程式。 這個區段可讓您 IntelliTrace 和 SharePoint 事件,例如偵錯工具事件、ULS 事件、例外狀況和收集器所記錄的其他資料。 |
Visual Studio 2012.1 獨立收集器 |
執行緒清單 |
在收集期間執行的執行緒 |
所有來源 |
Web 要求 |
送出至 IIS 應用程式集區的 Web 要求。 這項資料類似於 IIS W3c 記錄檔中收集的資料。 |
獨立收集器:只有 IIS 所裝載之 Web 應用程式 |
例外狀況資料 |
在收集期間由應用程式擲回的例外狀況,其中包含每個例外狀況的完整呼叫堆疊 |
所有來源 |
測試資料 |
測試步驟和測試工作階段的結果 |
Test Manager |
系統資訊 |
主機系統的設定和規格 |
所有來源 |
模組 |
在收集期間載入的模組 |
所有來源 |
從 IntelliTrace 記錄檔開始偵錯
在大部分區段中,您可以檢閱事件或其他項目、選擇項目,然後選擇 [開始偵錯]。 這會在發生事件的位置和時間點上啟動 IntelliTrace 偵錯工作階段。
提示
若要排序資料,請選擇資料行行首。若要篩選資料,請使用搜尋方塊。純文字搜尋可跨時間資料行以外的所有資料行執行。在 [Web 要求] 區段中,您也可以篩選搜尋至特定資料行。
分析
只有在您使用 Visual Studio 2012.1 中的收集器來錄製資料時,SharePoint 2010 應用程式才會顯示這個區段。 請參閱 使用獨立的收集器在 Visual Studio 外部收集 IntelliTrace 資料。
這個區段可讓您執行下列工作:
使用 SharePoint 相互關聯 ID 尋找其相對應 Web 要求和事件。 您可以選擇事件,然後在事件發生的位置和時間點上開始偵錯。
檢查收集器找到的所有未處理例外狀況。 您可以選擇例外狀況,然後在例外狀況發生的位置和時間點上開始偵錯。
注意事項 |
---|
如果看到訊息「找不到符號」,表示 Visual Studio 無法解析來源位置。請確定 Web 應用程式的符號 (.pdb) 檔案在 Visual Studio 符號路徑中。請參閱 尋找符號 (.pdb)、來源和二進位檔案。 |
使用 SharePoint 相互關聯 ID 開始偵錯
從來源複製 SharePoint 相互關聯 ID。
例如:
在 .iTrace 檔案的 [分析] 底下,您可以輸入 SharePoint 相互關聯 ID。 這可讓您尋找相對應的要求並查看其記錄的事件。
在 [要求事件] 下方,檢查事件。 事件會從頂端,依其發生順序開始顯示。
選擇要查看詳細資料的事件。
選擇 [開始偵錯] 以開始在發生事件的位置點上進行偵錯。
您可以一併查看這些類型的 SharePoint 事件和 IntelliTrace 事件:
使用者設定檔事件
這些事件會在 SharePoint 載入使用者設定檔時,以及在讀取或變更使用者設定檔屬性時發生。
統一登入系統 (ULS) 事件
獨立收集器會記錄 SharePoint ULS 事件的子集和下列欄位:
IntelliTrace 欄位
SharePoint ULS 欄位
Id
EventID
層級
層級
分類 ID
分類 ID
分類
分類
區域
產品
Output
訊息
相互關聯 ID
相互關聯 ID
從未處理的例外狀況開始偵錯
選取例外狀況的 SharePoint 相互關聯 ID。 例外狀況是依據型別和呼叫堆疊分組。
(選擇性) 展開 [呼叫堆疊] 以查看例外狀況群組的呼叫堆疊。
選擇 [偵錯例外狀況] 開始在發生例外狀況的位置及時間點上進行偵錯。
如需逐步解說,請參閱逐步解說:使用 IntelliTrace 偵錯 SharePoint 應用程式。 如需了解收集器錄製的資料種類,請參閱在 Visual Studio 中使用 IntelliTrace 錄製程式碼執行以偵錯。
執行緒清單
這個區段會顯示所記錄已在目標處理序中執行的執行緒。 您可以從所選取之執行緒中的第一個有效 IntelliTrace 事件開始進行偵錯。
若要從特定執行緒開始偵錯
在 [執行緒清單] 底下,選擇執行緒。
在 [執行緒清單] 下方,選取 [開始偵錯]。 您也可以按兩下執行緒。
若要從應用程式開始處開始偵錯,按兩下 [主執行緒]。 請參閱 在 Visual Studio 中使用 IntelliTrace 錄製程式碼執行以偵錯。
使用者建立的執行緒資料,可能會比伺服器為 IIS 裝載 Web 應用程式所建立和管理的執行緒還要有用。
資料行 |
顯示 |
---|---|
ID |
執行緒 ID 編號 |
名稱 |
執行緒名稱。 未命名的執行緒會顯示為「<沒有名稱>」。 |
開始時間 |
執行緒的建立時間 |
結束時間 |
執行緒的完成時間 |
Web 要求
這個區段會顯示所記錄已送出至 IIS 應用程式集區的 Web 要求。 您可以選擇 Web 要求,檢查該要求記錄的事件。 然後您可以從特定事件開始偵錯。
根據預設,Web 要求會依到達伺服器的順序由上而下出現。
若要查看為特定 Web 要求記錄的事件
在 [Web 要求] 底下,選擇 Web 要求。
在 [Web 要求] 下方,選取 [要求詳細資料]。 您也可以按兩下 Web 要求。
所選取之 Web 要求的 [要求詳細資料] 頁面會開啟,並顯示記錄中與該要求相關的 IntelliTrace 事件。 事件會從頂端,依其發生順序開始顯示。 藉由從分類清單選擇或使用搜尋方塊來篩選事件。 請參閱 在 Visual Studio 中使用 IntelliTrace 錄製程式碼執行以偵錯。
提示
[要求詳細資料] 頁面隨即在預覽索引標籤中開啟。當您選擇另一個 Web 要求時,這個索引標籤會取代成新的 [要求詳細資料] 頁面。若要保留預覽索引標籤,選取索引標籤上的 [升級]。下一個 Web 要求將會在新的預覽索引標籤中開啟。
若要從特定事件開始偵錯
在 [要求事件] 下方,選擇事件。
在 [要求事件] 下方,選取 [開始偵錯]。 您也可以按兩下事件。
提示
如果 .iTrace 檔案包含函式呼叫資訊,您可以從事件位置開始逐步執行程式碼。您也可以查看參數和傳回值。
若要收集呼叫資訊:
-
在 Visual Studio Ultimate 中,設定 IntelliTrace 以收集呼叫資訊。請參閱 在 Visual Studio 中使用 IntelliTrace 錄製程式碼執行以偵錯。
-
對於 IntelliTrace 獨立收集器,請使用 collection_plan.ASP.NET.trace.xml 收集計畫或自訂收集計畫。請參閱 使用獨立的收集器在 Visual Studio 外部收集 IntelliTrace 資料。
如果看到訊息「找不到符號」,表示 Visual Studio 無法解析來源位置。請確定 Web 應用程式的符號 (.pdb) 檔案在 Visual Studio 符號路徑中。請參閱 尋找符號 (.pdb)、來源和二進位檔案。
-
資料行 |
顯示 |
---|---|
方法 |
隨要求送出的 HTTP 方法 |
目標 URL |
隨要求送出的目標 URL |
花費時間 (毫秒) |
介於伺服器收到要求和結果離開伺服器之間的時間 (毫秒) |
狀態 |
在結果中傳回的 HTTP 狀態碼 |
工作階段 ID |
IIS 用來區分使用者的工作階段 ID。 [工作階段 ID] 值只是用來區分工作階段使用者的遞增整數,與 ASP.NET SessionID 概念無關。 因此,具有相同 [工作階段 ID] 的 Web 要求屬於同一個使用者工作階段。 |
用戶端 IP |
IIS 記錄的已送出要求的 IP 位址 |
使用者代理程式 |
隨 HTTP 要求送出的使用者代理程式字串值 |
開始時間 |
伺服器收到要求的時間 |
結束時間 |
伺服器回應用戶端的時間。 |
若要從使用者觀點檢視資料,請篩選和分組 Web 要求。 例如:
若要尋找失敗,請依據 [狀態] 篩選要求。
若要查看趨勢或使用者行為,請依據 [目標 URL] 或 [工作階段 ID] 將失敗分組。
您也可以篩選搜尋至特定資料行。 輸入不含空格的資料行名稱、逗號和搜尋值。
例如,若要尋找使用 GET 方法且具有特定工作階段 ID 的 Web 要求,請輸入:
Method:GET;SessionId:2
每個資料行可以使用一個篩選條件。 若要了解可以篩選哪些資料行,請查看 [Web 要求] 搜尋方塊的工具提示。
例外狀況資料
這個區段可讓您檢查所記錄由應用程式擲回的例外狀況。 根據預設,最近的例外狀況會出現在頂端,因為例外狀況是依 [事件時間] 遞減順序排序的。
若要從特定例外狀況開始偵錯
在 [例外狀況資料] 下方,選擇例外狀況。
在 [例外狀況資料] 下方,選取 [開始偵錯]。 您也可以按兩下例外狀況。
這會從擲回例外狀況時開始偵錯。
提示
尋找具有相同 [型別] 和 [執行緒 ID] 並循序出現的多個例外狀況。這通常是因為重新擲回、攔截,然後再次擲回的一個例外狀況所造成的。
若要了解是否有上述情形,請選擇其中每一個例外狀況,並檢視呼叫堆疊。查看呼叫堆疊增加或減少。如果較短的堆疊與較長的呼叫堆疊開頭相同,而且 [執行緒 ID] 相同,則可能是重新擲回相同的例外狀況。具有最長呼叫堆疊的例外狀況可能是最接近問題的來源。
資料行 |
顯示 |
---|---|
型別 |
例外狀況的 .NET 類型 |
訊息 |
例外狀況所提供的訊息 |
執行緒 ID |
擲回例外狀況之執行緒的 ID |
HResult |
在例外狀況中指定的錯誤碼。 如果這個值在例外狀況中設定則可用。 |
事件時間 |
當擲回例外狀況時記錄的時間戳記 |
呼叫堆疊 |
例外狀況的呼叫堆疊。 若要查看呼叫堆疊,請選取清單中的例外狀況。 呼叫堆疊顯示在例外狀況清單下方。 |
測試資料
此區段可讓您檢查 Test Manager 在測試應用程式時所收集的資料。
若要從特定測試步驟開始偵錯
展開 [測試步驟格線]。 選取測試步驟。
在 [測試步驟格線] 下方,選取 [開始偵錯]。 您也可以按兩下測試步驟。
這會從所選取之測試步驟之後的第一個有效的 IntelliTrace 事件開始偵錯。
當測試資料存在時,IntelliTrace 會嘗試解析用於執行測試回合的相關 Team Foundation Server 組建。 如果找到組建,則會自動解析應用程式的相關符號。
欄位 |
顯示 |
---|---|
測試工作階段 |
記錄的測試工作階段。 通常,只有一個。 如果測試資料是使用手動探勘測試建立的,這份清單是空的。 |
測試案例 |
從選取的測試工作階段的測試案例。 如果測試資料是使用手動探勘測試建立的,這份清單是空的。 |
測試步驟格線 |
記錄的測試步驟,具有成功或失敗的測試結果 |
系統資訊
此區段告訴您有關裝載應用程式之系統的詳細資訊,例如硬體、作業系統、環境和處理序特定的資訊。
模組
此區段向您顯示目標處理序所載入的模組。 模組會依其載入順序出現。
資料行 |
顯示 |
---|---|
模組名稱 |
模組檔案名稱 |
模組路徑 |
載入模組的磁碟位置 |
模組 ID |
版本特定並提供給相符符號 (PDB) 檔案之模組的唯一識別項。 請參閱 [OBSOLETE] 如何:指定符號位置和載入行為。 |
哪裡可以取得詳細資訊?
使用獨立的收集器在 Visual Studio 外部收集 IntelliTrace 資料
在 Visual Studio 中使用 IntelliTrace 錄製程式碼執行以偵錯
HOW TO:收集 IntelliTrace 資料以協助偵錯困難的問題
使用 IntelliTrace 錄製程式碼執行以偵錯應用程式
網誌
Visual Studio ALM + Team Foundation Server
論壇
指引
使用 Visual Studio 2012 測試連續傳遞 – 第 6 章:測試工具方塊