使用 IntelliTrace 進行偵錯
本主題僅適用於 Visual Studio 2010 Ultimate。
相較於傳統的偵錯工具,使用 Microsoft Visual Studio 2010 Ultimate 中的 IntelliTrace 進行偵錯,會提供增強型的應用程式全貌。 傳統的偵錯工具會顯示應用程式在目前時間的狀態,而且只提供少數過去發生之事件的相關資訊。 您必須根據應用程式在目前時間的狀態推斷過去發生的事件,或重新啟動應用程式來重新建立過去的事件。 您可以使用 IntelliTrace 實際看到過去發生的事件以及發生事件的內容。 這會減少偵錯應用程式所需的重新啟動次數,並降低重新執行應用程式時無法重現錯誤的可能性。
IntelliTrace 擴充並強化慣用的 Visual Studio「即時偵錯」(Live Debugging) 經驗。 您仍然可以存取所有熟悉的 Visual Studio 偵錯工具功能。 IntelliTrace 在背景中以隱藏的方式運作,並記錄偵錯資訊。 當您想要回頭查看應用程式的過去狀態時,可以進入 IntelliTrace 模式。 在此模式中,您可以巡覽至已經記錄相關事件的不同時間點。
您也可以載入及偵錯由 IntelliTrace 或測試管理員建立的 IntelliTrace 檔案 (副檔名為 .iTrace)。IntelliTrace 檔案可讓您使用所有 IntelliTrace 功能來執行當機後偵錯。
當您使用預設設定,IntelliTrace 對應用程式效能所造成的影響極小。 因此預設會開啟 IntelliTrace。 即使在啟動偵錯工作階段期間未規劃使用 IntelliTrace,也會自動收集 IntelliTrace 資訊,並在需要時可供使用。
加快程式碼偵錯速度
IntelliTrace 縮短偵錯循環,可以節省時間。 例如,假設您要偵錯一個於初始設定期間讀取登錄值的應用程式,但登錄機碼不存在。 該問題的影響可能直到應用程式稍後執行時才引起注意。 接著,您必須判斷未讀取登錄值的原因。 一般作法是重新啟動應用程式並在登錄存取附近放置中斷點。 重新執行應用程式很耗時。 您可以使用 IntelliTrace 避免許多這類的重新啟動。 相對於重新執行應用程式,您可以使用 IntelliTrace 開始偵錯,讓您回頭查看所有登錄存取,選擇所需,以及檢查該登錄存取發生時的應用程式狀態。 當您偵錯其他問題如例外狀況或檔案存取錯誤時,可能會體驗到類似的節省時間經驗。 如需詳細資訊,請參閱使用 IntelliTrace 加快程式碼偵錯速度。
偵錯無法重現的錯誤
IntelliTrace 讓您偵錯以其他方式無法重現的錯誤和當機。 您可以偵錯 IntelliTrace 或測試管理員建立的記錄檔。 測試人員可以將測試管理員的記錄檔直接連結至 Team Foundation Server 工作項目或 Bug,後者可以指派給開發人員。 如此一來,IntelliTrace 和測試管理員會整合至小組工作流程。
當您偵錯 IntelliTrace 檔案時,這項處理類似於偵錯傾印檔。 不過,IntelliTrace 檔案比傳統的傾印檔提供更多資訊。 傾印檔提供應用程式在某個瞬間的狀態快照,通常是在剛發生當機時。 您可以使用 IntelliTrace 倒轉記錄,來檢視應用程式執行早期階段發生的事件以及應用程式狀態。 如此記錄檔偵錯比傾印檔偵錯更加快速輕鬆。
如需詳細資訊,請參閱使用 IntelliTrace 偵錯無法重現的錯誤。
支援的應用程式和偵錯情節
IntelliTrace 支援偵錯使用 .NET 2.0、3.0、3.5 或 4 版本的 Visual Basic 和 C# 應用程式。 您可以偵錯大部分應用程式,包括使用 ASP.NET、Windows Form、WPF、Windows Workflow 和 WCF 所建立的應用程式。 IntelliTrace 不支援偵錯 C++、指令碼或其他語言。 根據實驗基礎,支援 F# 應用程式偵錯。
您可以使用 IntelliTrace 偵錯從 Visual Studio 啟動的應用程式,以及 IntelliTrace 或測試管理員建立的 IntelliTrace 檔案。 Visual Studio 無法用於從 Visual Studio 外部啟動且透過 [附加至] 命令偵錯的應用程式。 IntelliTrace 不支援遠端偵錯其他電腦上執行的應用程式。
IntelliTrace 透過測試管理員所建立的追蹤偵錯記錄檔,支援 SharePoint 應用程式和 64 位元應用程式的當機後偵錯。 它不支援偵錯從 Visual Studio 啟動的 SharePoint 應用程式或 64 位元應用程式。
IntelliTrace 不支援偵錯 Silverlight、Xbox 或 Windows Mobile 應用程式。
收集層級
已啟用 IntelliTrace 時,每個偵錯工作階段期間都會自動收集資訊。 這項 IntelliTrace 資訊可讓您在需要時從即時偵錯切換至使用 IntelliTrace 偵錯。 收集的資訊類型是由您在 Visual Studio 層級設定的選項所決定。 這些收集選項會套用至所有專案與方案。 它們會在偵錯工作階段與 Visual Studio 工作階段之間保存。
根據預設,IntelliTrace 只會針對選取的「IntelliTrace 事件」(IntelliTrace Event) 收集資訊。 如前述,收集這項預設資訊對應用程式效能所造成的影響極小。
如需更多偵錯功能,除了 IntelliTrace 事件之外,您還可以選擇收集呼叫記錄以及其參數和傳回值。 這項額外的偵錯功能有效能成本。 如需診斷事件和收集選項的詳細資訊,請參閱收集 IntelliTrace 資訊。