共用方式為


一般偵錯選項

若要設定 Visual Studio 偵錯工具選項,請選取 [工具]>[選項],然後在 [偵錯] 底下,選取或取消選取 [一般] 選項旁的方塊。 您可以使用 [工具]>[匯入和匯出設定]>[重設所有設定] 來還原所有預設設定。 若要重設設定子集,請在進行要測試的變更之前使用 [匯入和匯出設定精靈] 儲存您的設定,之後再匯入您所儲存的設定。

您可以設定下列 [一般] 選項:

刪除所有中斷點之前先詢問:在完成 [刪除所有中斷點] 命令之前需要進行確認。

在一個處理序中斷時會中斷所有處理序:發生中斷時,會同時中斷偵錯工具附加到的所有處理序。

在例外狀況跨越 AppDomain 或受控/原生界限時中斷:在受控或混合模式偵錯中,Common Language Runtime 支援可以在下列條件成立時攔截跨應用程式定義域界限或受控/原生界限的例外狀況:

  1. 當機器碼使用 COM Interop 呼叫受控程式碼,且受控程式碼擲回例外狀況時。 請參閱 COM Interop 簡介

  2. 當在應用程式定義域 1 中執行的受控程式碼呼叫應用程式定義域 2 中的受控程式碼,且應用程式定義域 2 中的程式碼擲回例外狀況時。 請參閱使用應用程式定義域設計程式

  3. 程式碼使用反映呼叫函式,且函式擲回例外狀況時。 請參閱反映

在條件 2 和 3 中,例外狀況有時是由 mscorlib 中的受控程式碼攔截的,而不是由 Common Language Runtime 支援攔截。 這個選項不會影響被 mscorlib 攔截之例外狀況的中斷。

啟用位址層級偵錯:啟用位址層級偵錯的進階功能 ([反組譯碼] 視窗、[暫存器] 視窗與位址中斷點)。

  • 如果來源無法使用,則顯示反組譯碼:在您偵錯來源無法使用的程式碼時,自動顯示 [反組譯碼] 視窗。

啟用中斷點篩選條件:允許您設定中斷點的篩選條件,因此中斷點只會影響特定的處理序、執行緒或電腦。

使用新的例外狀況協助程式:啟用例外狀況協助程式來取代例外狀況助理。 (從 Visual Studio 2017 開始支援例外狀況協助程式)

注意

若為受控程式碼,這個選項以前稱為啟用例外狀況助理

啟用 Just My Code:偵錯工具僅顯示且逐步執行使用者程式碼 ("My Code"),並忽略系統程式碼和其他已最佳化或沒有偵錯符號的程式碼。

  • 如果啟動時沒有使用者程式碼,則發出警告 (僅限受控):在啟用 Just My Code 的情況下開始偵錯時,如果沒有使用者程式碼 ("My Code"),這個選項即會發出警告。

啟用 .NET Framework 原始碼逐步執行:允許偵錯工具逐步執行 .NET Framework 原始碼。 啟用這個選項會自動停用 Just My Code。 .NET Framework 符號將下載至快取位置。 您可以使用 [選項] 對話方塊、[偵錯] 類別、[符號] 頁面,來變更快取位置。

逐步執行屬性和運算子 (僅限受控):防止偵錯工具逐步執行受控程式碼中的屬性和運算子。

啟用屬性評估和其他隱含的函式呼叫:在變數視窗和 [快速監看式] 對話方塊中,開啟屬性自動評估和隱含的函式呼叫。

  • 對變數視窗中的物件呼叫字串轉換函式 (僅限 C# 和 JavaScript):在評估變數視窗中的物件時,執行隱含的字串轉換呼叫。 該結果顯示為字串,而非類型名稱。 只適用於偵錯 C# 程式碼時。 此設定可能會被 DebuggerDisplay 屬性覆蓋 (請參閱使用 DebuggerDisplay 屬性)。

啟用來源伺服器支援:指示 Visual Studio 偵錯工具從實作 SrcSrv (srcsrv.dll) 通訊協定的來源伺服器取得來源檔案。 Team Foundation Server 和 Windows 偵錯工具這兩個來源伺服器會實作通訊協定。 如需 SrcSrv 設定的詳細資訊,請參閱 SrcSrv 文件。 此外,請參閱指定符號 (.pdb) 和來源檔案

重要

因為讀取 .pdb 檔案可以執行檔案中的任意程式碼,請確定您信任伺服器。

  • 將來源伺服器診斷訊息列印到 [輸出] 視窗:啟用來源伺服器支援時,此設定會開啟診斷顯示。

  • 允許部分信任組件的來源伺服器 (僅限受控):啟用來源伺服器支援時,此設定會覆寫未擷取部分信任組件來源的預設行為。

  • 一律執行不受信任的來源伺服器命令而不提示:啟用來源伺服器支援時,此設定會覆寫執行不受信任命令時提示的預設行為。

啟用 Source Link 支援:指示 Visual Studio 偵錯工具下載包含 Source Link 資訊的 .pdb 檔案的來源檔案。 如需 Source Link 的詳細資訊,請參閱 Source Link 規格

重要

由於 Source Link 將使用 HTTP 或 HTTPS 下載檔案,因此請確定您信任 .pdb 檔案。

  • 針對所有 Source Link 要求回退到 Git 認證管理員驗證:啟用 Source Link 支援且 Source Link 要求驗證失敗時,Visual Studio 就會呼叫 Git 認證管理員。

醒目提示中斷點和目前陳述式的整個原始碼程式行 (僅限 C++):在偵錯工具醒目提示中斷點或目前陳述式時,它會醒目提示整行。

要求來源檔案完全符合原始版本:指示偵錯工具確認來源檔案與用來建置您正在偵錯之可執行檔的原始程式碼版本相符。 如果版本不相符,系統會提示您尋找相符的來源檔案。 如果找不到相符的原始程式檔,偵錯期間將不會顯示原始程式碼。

將所有 [輸出] 視窗文字重新導向至 [即時運算] 視窗:將通常出現在 [輸出] 視窗中的所有偵錯工具訊息傳送到 [即時運算] 視窗。

在變數視窗中顯示物件的原始結構:關閉所有物件結構檢視自訂。 如需檢視自訂的詳細資訊,請參閱建立受控物件的自訂檢視

抑制模組載入時的 JIT 最佳化 (僅限受控):在已附加偵錯工具且已載入模組並編譯 JIT 時,停用受控程式碼的 JIT 最佳化。 停用最佳化可更容易偵錯一些問題,但消耗較多效能。 如果正在使用 Just My Code,隱藏 JIT 最佳化會使非使用者程式碼顯示為使用者程式碼 ("My Code")。 如需詳細資訊,請參閱 JIT 最佳化和偵錯

啟用 ASP.NET (Chrome、Microsoft Edge 和 IE) 的 JavaScript 偵錯:啟用 ASP.NET 應用程式的指令碼偵錯工具。 第一次在 Chrome 中使用時,您必須登入瀏覽器,才能啟用已安裝的 Chrome 擴充功能。 停用這個選項,可還原為舊版行為。

啟用使用多目標 JavaScript 偵錯工具在適用的目標中偵錯 JavaScript (需要重新啟動偵錯):同時啟用與瀏覽器和後端的連線,允許您直接從編輯器對在用戶端和伺服器中執行的程式碼進行偵錯。

載入 dll 匯出 (僅限原生):載入 dll 匯出資料表。 若您使用 Windows 訊息、Windows 程序 (WindowProc)、COM 物件、封送處理或是任何您沒有其符號的 dll,則 dll 匯出資料表的符號資訊會很有幫助。 讀取 dll 匯出資訊會產生一些額外負荷。 因此,這項功能預設為關閉。

若您想知道 dll 匯出表中可使用的符號,請使用 dumpbin /exports。 這些符號適用於任何 32 位元系統 dll。 讀取 dumpbin /exports 輸出時,您可以看到確實的函式名稱,包含非英數字元。 這對設定函式的中斷點來說很有幫助。 dll 匯出表中的函式名稱在偵錯工具中的其他位置可能會顯示為已被截斷。 這些呼叫都按呼叫順序列出,目前的函式 (巢狀最深處) 列在頂端。 如需詳細資訊,請參閱 dumpbin /exports

由下而上顯示平行堆疊圖表:控制堆疊在 [平行堆疊] 視窗中的顯示方向。

如果寫入的資料未變更值,則忽略 GPU 記憶體存取例外狀況:如果資料未變更,則忽略偵錯期間偵測到的競爭條件。 如需詳細資訊,請參閱偵錯 GPU 程式碼

使用受控相容性模式:將預設偵錯引擎取代為舊版本,以啟用以下案例:

  • 您使用的是 C#、Visual Basic 或 F# 以外的 .NET 程式設計語言,該程式設計語言提供專屬的運算式評估工具 (包括 C++/CLI)。

  • 您希望在混合模式偵錯期間為 C++ 專案啟用 [編輯後繼續]。

注意

選擇 [受控相容性] 模式會停用只在預設偵錯引擎中實作的某些功能。 舊版偵錯引擎在 Visual Studio 2012 中已被取代。

對可能不安全的處理序使用自訂偵錯工具視覺化檢視時發出警告 (僅限受控):如果您使用的自訂偵錯工具視覺化檢視在偵錯處理序中執行程式碼,Visual Studio 會發出警告,因為它可能正在執行不安全的程式碼。

啟用 Windows 偵錯堆積配置器 (僅限原生):啟用 Windows 偵錯堆積,以改善堆積診斷。 啟用此選項會影響偵錯效能。

啟用 XAML 的 UI 偵錯工具:在您開始偵錯 (F5) 支援的專案類型時,將顯示 [即時視覺化樹狀結構] 和 [即時屬性瀏覽] 視窗。 如需詳細資訊,請參閱在偵錯時檢查 XAML 屬性

  • 預覽即時視覺化樹狀結構中選取的元素:在 [即時視覺化樹狀結構] 視窗中也會選取其內容已被選取的 XAML 元素。

  • 在應用程式中顯示執行階段工具:在正在偵錯的 XAML 應用程式主視窗的工具列中,顯示 [即時視覺化樹狀結構] 命令。

  • 啟用 XAML 熱重新載入:允許您在應用程式執行時透過 XAML 程式碼使用 XAML 熱重新載入功能。 (此功能以前稱為「XAML 編輯後繼續」)

  • 啟用 Just My XAML:從 Visual Studio 2019 16.4 版開始,[即時視覺化樹狀結構] 預設只會顯示分類為使用者程式碼的 XAML。 如果您停用這個選項,則所有產生的 XAML 程式碼都會顯示在工具中。

  • 已選取元素時關閉選取模式:從 Visual Studio 2019 16.4 版開始,應用程式內工具列元素選取器按鈕 (啟用選取) 會在已選取元素時關閉。 如果您停用這個選項,元素選取會保持開啟狀態,直到您再按一下應用程式內工具列按鈕。

  • 在儲存文件時套用 XAML 熱重新載入:從 Visual Studio 2019 16.6 版開始,在儲存文件時會套用 XAML 熱重新載入。

偵錯時啟用診斷工具:偵錯時會出現 [診斷工具] 視窗。

偵錯時顯示已耗用時間 PerfTip:在進行偵錯時,程式碼視窗會顯示指定方法呼叫已耗用的時間。

啟用 [編輯後繼續]:在偵錯時,啟用 [編輯後繼續] 功能。

  • 啟用 [原生編輯後繼續]:您可以在偵錯原生 C++ 程式碼時,使用 [編輯後繼續] 功能。 如需詳細資訊,請參閱編輯後繼續 (C++)

  • 繼續時套用變更 (僅限原生):Visual Studio 會自動編譯並套用從中斷狀態繼續處理序時所做的任何未完成的程式碼變更。 若未選取,您可以選擇使用 [偵錯] 功能表下的 [套用程式碼變更] 項目套用變更。

  • 對過時程式碼發出警告 (僅限原生):取得過時程式碼的警告。

偵錯時在編輯器中顯示 [執行至點選處] 按鈕:選取這個選項時,偵錯期間將顯示 [執行至點選處] 按鈕。

偵錯停止時自動關閉主控台:指示 Visual Studio 在偵錯工作階段結束時關閉主制台。

啟用快速運算式評估 (僅限受控):允許偵錯工具透過模擬簡單屬性和方法的執行來嘗試進行更快速的評估。

在外部處理序中載入偵錯符號 (僅限原生):在偵錯時,啟用此記憶體最佳化

在偵錯工具中發生中斷時,將 Visual Studio 移至前景:在偵錯工具中暫停時,將 Visual Studio 切換至前景。

保持展開的資料提示為開啟狀態,直到在別處按一下為止:選取這個選項時,展開的資料提示將保持開啟狀態,直到您在別處按一下為止。

舊版 Visual Studio 中可用的選項

如果您使用的是舊版的 Visual Studio,則可能會出現一些其他選項。

啟用 UWP JavaScript 應用程式的 Edge 開發人員工具 (實驗性):在 Microsoft Edge 中,啟用 UWP JavaScript 應用程式的開發入員工具。

為 ASP.NET 啟用舊版 Chrome JavaScript 偵錯工具:為 ASP.NET 應用程式啟用舊版 Chrome JavaScript 指令碼偵錯工具。 第一次在 Chrome 中使用時,您必須登入瀏覽器,才能啟用已安裝的 Chrome 擴充功能。

啟用例外狀況助理:為受控程式碼,啟用例外狀況助理。 從 Visual Studio 2017 開始,例外狀況協助程式已取代例外狀況助理。

在未處理的例外狀況上回溯呼叫堆疊:導致 [呼叫堆疊] 視窗將呼叫堆疊復原到發生未處理的例外狀況之前的位置。

以系統管理員身分執行 Visual Studio 時,使用實驗性方式啟動 Chrome JavaScript 偵錯:指示 Visual Studio 在 JavaScript 偵錯期間,嘗試以新的方式來啟動 Chrome。

如果啟動時沒有任何符號,則發出警告 (僅限原生):在偵錯其偵錯工具沒有任何符號資訊的程式時,顯示警告對話方塊。

如果在啟動時停用指令碼偵錯,則發出警告:在停用指令碼偵錯的情況下啟動偵工具時,顯示警告對話方塊。

使用受控相容性模式:選取這個選項時,偵錯工具將使用 Visual Studio 2010 受控偵錯工具,這是偵錯 C++/CLI 程式碼的必要工具。

使用原生相容性模式:選取這個選項時,偵錯工具將使用 Visual Studio 2010 原生偵錯工具,而不是新的原生偵錯工具。

  • 在偵錯 .NET C++ 程式碼時會使用這個選項,因為新的偵錯引擎不支援評估 .NET C++ 運算式。 然而,啟用 [原生相容性模式] 會停用許多相依於目前偵錯工具實作以進行運作的功能。 例如,舊版引擎缺少許多用於內建類型的視覺化檢視,像是 Visual Studio 2015 專案中的 std::string。 在這些情況下,請使用 Visual Studio 2013 專案以取得最佳偵錯體驗。

另請參閱