共用方式為


收集 IntelliTrace 資訊

警告

注意:在 Visual Studio 2010 Ultimate Service Pack 1 中,根據預設 IntelliTrace 於關閉後不再儲存 IntelliTrace 記錄檔 (.iTrace 檔案)。 如需儲存 Intellitrace 記錄檔的詳細資訊,請參閱本主題中的儲存記錄檔

本主題僅適用於 Visual Studio 2010 Ultimate。

在 Visual Studio 2010 Ultimate 中,預設會啟用 IntelliTrace。 在即時偵錯工作階段期間,IntelliTrace 會在背景中運作,並以隱藏的方式自動收集 IntelliTrace 資訊。 這項資訊的可用性可讓您從即時偵錯工作階段切換至使用 IntelliTrace 偵錯,並且在程式碼中進行「時間旅行」。

根據預設,IntelliTrace 只會針對選取的「IntelliTrace 事件」(IntelliTrace Event) 收集並記錄資訊。 預設收集設定的額外負荷最小。 它們並不會影響應用程式的執行,或是您使用 Visual Studio 偵錯工具的能力。

收集呼叫和參數可讓 IntelliTrace 提供額外的偵錯功能。 不過,收集呼叫和參數會增加效能額外負荷、使用額外的磁碟空間,並且停用 Visual Studio 偵錯工具的 [編輯後繼續] 功能。 您必須針對特定應用程式和偵錯案例權衡成本與優勢。

收集選項是在 Visual Studio 層級設定的。 它們會套用至所有 Visual Basic 和 C# 專案與方案。 收集選項會在偵錯工作階段與 Visual Studio 工作階段之間保存。

本主題內容

  • 儲存記錄檔

  • IntelliTrace 事件

  • 呼叫和參數

  • 依照模組設定收集

儲存記錄檔

根據預設,在您關閉 Visual Studio 之後,IntelliTrace 不會儲存 IntelliTrace 記錄檔 (.iTrace 檔案)。 您可以變更預設行為讓 IntelliTrace 儲存所有記錄檔,或手動儲存 IntelliTrace 記錄檔,如下列程序所述。

若要變更預設的 IntelliTrace 記錄檔行為

  1. 在 [工具] 功能表上按一下 [選項]。

  2. 在選項分類清單中,展開 [IntelliTrace] 節點,然後按一下 [進階]。

  3. 請執行下列其中一項工作:

    1. 如果您想要儲存所有 IntelliTrace 記錄檔 (.iTrace 檔案),請選取 [在此目錄中儲存 IntelliTrace 記錄],然後指定要儲存檔案的資料夾路徑。

    2. 如果您想要在關閉 Visual Studio 時刪除 .iTrace 檔案 (除非手動儲存這些檔案),請清除 [在此目錄中儲存 IntelliTrace 記錄]。

  4. 按一下 [確定] 儲存您的變更。

若要手動儲存 IntelliTrace 記錄檔

  1. 在 [IntelliTrace] 視窗的工具列中,按一下 [儲存目前 IntelliTrace 工作階段] 按鈕。

  2. 在 [另存新檔] 對話方塊中,指定要儲存工作階段的檔案名稱,然後按一下 [儲存]。

IntelliTrace 事件

IntelliTrace 事件就是應用程式執行時所發生的事件,而這些事件可由 IntelliTrace 加以收集。 IntelliTrace 可以收集的事件類型包括:

  • 偵錯工具事件。 這些是當您偵錯應用程式時,在 Visual Studio 偵錯工具內部發生的事件。 應用程式的啟動就是一個偵錯工具事件。 其他偵錯工具事件包括「停止事件」(Stopping Event),也就是導致應用程式進入中斷狀態的事件。 叫用中斷點、叫用追蹤點或執行 [步驟] 命令都是停止事件的範例。

    基於效能考量,IntelliTrace 不會收集每個偵錯工具事件的所有可能值。 IntelliTrace 只會收集使用者會看見的值。 例如,如果 [自動變數] 視窗開啟,則 IntelliTrace 會收集 [自動變數] 視窗中的可見值。 如果 [自動變數] 視窗關閉,則不會收集這些值。

    如果您指向位於來源視窗中的變數,則會收集出現在 DataTip 中的值。 但不會收集固定 DataTip 中的值。

  • 例外狀況事件。 這些事件會針對已處理的例外狀況、擲回並攔截例外狀況的時間點以及未處理的例外狀況發生。 IntelliTrace 會收集例外狀況類型和例外狀況訊息。

  • Framework 事件。 這些是在 .NET 程式庫內部發生的事件。 您可以在 [選項] 對話方塊的 [IntelliTrace 事件] 頁面上,檢視可收集的完整 .NET 事件清單。 IntelliTrace 所收集的資料會隨事件而改變。 對於 [檔案存取] 事件,IntelliTrace 會收集檔案的名稱;對於 [勾選核取方塊],則會收集核取方塊的狀態和文字,依此類推。

若要查看已經收集的 IntelliTrace 事件清單,請按一下 [IntelliTrace] 視窗的 [IntelliTrace 事件] 索引標籤。 啟用 IntelliTrace 時,就一定會收集偵錯工具事件。 您無法關閉其收集功能。

系統預設會收集最常見的 .Framework 事件。 若要選取其他 .NET 事件,您可以使用下列程序。 此外,您也可以停用任何或所有 .NET 事件的收集功能。 若要避免 [IntelliTrace] 視窗雜亂,您可能會想要停用不感興趣的事件收集功能。 啟用或停用特定事件的收集功能通常對應用程式效能所造成的影響不大。

若要選擇您想要記錄的 IntelliTrace 事件

  1. 在 [IntelliTrace] 視窗工具列上,按一下 [開啟 IntelliTrace 設定] 圖示。

    - 或 -

    1. 在 [工具] 功能表上按一下 [選項]。

    2. 在 [選項] 對話方塊中,指向 [IntelliTrace] 節點,然後按一下 [一般]。

  2. 確認已選取 [啟用 IntelliTrace]。

    注意事項注意事項

    清除 [啟用 IntelliTrace] 核取方塊會停用所有自訂設定。

  3. 在 [IntelliTrace] 節點底下,按一下 [IntelliTrace 事件]。

  4. 查看 [IntelliTrace 事件] 方塊來尋找您感興趣的事件分類。

    1. 若要查看個別事件,請按一下 [分類名稱] 旁邊的樹狀目錄控制項。 例如,您可以展開 [登錄] 以查看特定登錄事件,例如 [ClosedRegistryKey]。

    2. 若要啟用或停用整個事件分類的記錄功能,請選取或清除分類名稱旁邊的核取方塊。

    3. 若要啟用或停用特定事件的記錄功能,請選取或清除特定事件名稱旁邊的核取方塊。

  5. 按一下 [確定]。

  6. 如果您正在偵錯,就必須重新啟動偵錯工作階段,才能讓變更生效。

呼叫和參數

如果您在使用 IntelliTrace 偵錯期間需要更多資訊,可以選擇收集有關呼叫及其參數的資訊。 收集呼叫資訊可能會對您的應用程式造成效能影響,而且可能會增加記錄檔的大小。

收集呼叫資訊與 Visual Studio 偵錯工具的 [編輯後繼續] 功能不相容。 如果您選擇要收集呼叫資訊,[編輯後繼續] 功能就會自動停用,而且在啟用呼叫資訊的收集功能期間無法重新啟用。

當您啟用 [IntelliTrace 事件和呼叫資訊] 時,IntelliTrace 就會收集每個呼叫進入和結束的記錄。 進入時,IntelliTrace 會收集每個參數的名稱和值資訊。 若為陣列,就只會記錄前 256 個物件。 若為物件,就只會記錄最上層的結構。 結束時,IntelliTrace 會收集方法的傳回值。

若要啟用呼叫資訊的收集功能

  1. 在 [選項] 對話方塊中,按一下 [IntelliTrace] 節點底下的 [一般]。

  2. 在 [一般] 頁面上,按一下 [IntelliTrace 事件和呼叫資訊]。

  3. 按一下 [確定]。

依照模組設定收集

您可以針對特定模組開啟或關閉 IntelliTrace 資訊的收集功能。 這項功能很有用,因為某些模組可能與偵錯目的無關。 例如,您可能會偵錯包括經過完善測試且充分偵錯之傳統 DLL 專案的方案。 排除您不感興趣的模組可避免 [IntelliTrace] 視窗雜亂,而且讓您更容易專注於感興趣的程式碼。 此外,這樣做也可以改善效能並且減少記錄檔所使用的磁碟空間。 如果您已經選擇要收集呼叫和參數,其差異可能會很明顯。

若要從選取的模組中收集資料

  1. 在 [選項] 對話方塊中,按一下 [IntelliTrace] 節點底下的 [模組]。

  2. 選取 [從所有模組收集資料,但下列模組例外] 或 [只從下列模組收集資料]。

    該設定下方就是模組名稱的清單。

  3. 若要從清單中移除模組,請選取模組名稱,然後按一下 [移除] 按鈕。

  4. 若要將模組加入至清單:

    1. 按一下 [加入] 按鈕。

      [加入模式] 對話方塊隨即出現。

    2. 在 [輸入要比對的字串模式] 方塊中,輸入您想要加入至清單的模組名稱。 您可以在字串的開頭或結尾使用萬用字元規範來加入多個模組。

    3. 按一下 [加入]。

    模組名稱必須是檔案名稱,而非組件名稱。 不接受檔案路徑。

  5. 按一下 [確定]。

    注意事項注意事項

    如果在 [一般] 頁面上,將集合設定為 [只有事件],模組設定就沒有任何作用。

請參閱

概念

使用 IntelliTrace 進行偵錯