共用方式為


一般偵錯選項

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

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

刪除所有斷點之前詢問:完成 刪除所有斷點 命令之前,必須先確認。

當某個程序中斷時中斷所有程序:如果發生中斷,將同時中斷偵錯工具所附加的所有程序。

當例外狀況跨越 AppDomain 或托管/本機界限時中斷:在托管或混合模式的除錯過程中,若有三個條件成立,一般語言執行階段即可攔截穿越應用程式域界限或托管/本機界限的例外狀況:

  • 條件 1:當原生程式碼使用 COM Interop 呼叫 Managed 程式碼,且 Managed 程式碼擲回例外狀況時。 請參閱 COM Interop 簡介

  • 條件 2:當在應用程式網域 1 中執行的 Managed 程式碼呼叫應用程式網域 2 中的 Managed 程式碼,而應用程式網域 2 中的程式碼擲回例外狀況時。 請參閱 使用應用程式域進行程式設計

  • 條件3:當程式碼使用反射呼叫函數時,該函數擲出異常。 請參閱 反思

  • 針對條件 2 和 3,例外狀況有時會由受控程式碼中的 mscorlib 擷取,而不是由 Common Language 執行階段擷取。 此選項不會影響由mscorlib攔截的例外狀況中斷。

啟用位址層級偵錯:啟用在位址層級進行偵錯的進階功能(反組譯碼 視窗、緩存器 視窗和地址斷點)。

  • 當來源無法使用時,顯示反組譯碼:在偵錯沒有來源的程式代碼時,會自動顯示反組譯碼視窗。

啟用中斷點篩選器:可讓您在中斷點上設定篩選器,使其只影響特定進程、執行緒或電腦。

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

注意

針對受控程式碼,此選項先前稱為 啟用例外狀況助理

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

  • 啟動時沒有使用者程式碼時發出警告(僅限受控代碼):當啟用 [僅限我的程式碼] 進行偵錯時,如果沒有「我的程式碼」,此選項會警告您。

啟用 .NET Framework 原始程式碼逐步執行:允許調試程式逐步進入 .NET Framework 原始程式碼。 啟用此選項會自動停用 Just My Code。 .NET Framework 符號會下載至快取位置。 您可以使用 [此目錄中的快取符號] 選項,在 >>位置] 區段中變更快取位置。

啟用 .NET Framework 原始程式碼逐步執行:允許調試程式逐步進入 .NET Framework 原始程式碼。 啟用此選項會自動停用 Just My Code。 .NET Framework 符號會下載至快取位置。 您可以在 Debugging>Symbols 區段中使用 將符號快取儲存在此目錄 選項來變更快取位置。

盡可能自動取消最佳化偵錯函式 (.Net 8+、C++ 動態偵錯) :選取時,會取消最佳化偵錯函式,以獲得更全面的偵錯體驗。

停用模組載入時的 JIT 優化(僅適用於 Managed):在載入模組時停用 Managed 程式碼的 JIT 優化,並在附加調試器時進行 JIT 編譯。 停用最佳化可能會讓除錯某些問題變得更容易,但會犧牲效能。 如果您使用 [只我的程式碼],隱藏 JIT 最佳化可能會導致非使用者程式碼顯示為使用者程式碼 (「我的程式碼」)。 如需詳細資訊,請參閱 JIT 優化和偵錯

設定預先編譯映像的使用(僅限受控):當您選取此連結時,[ Visual Studio 偵錯工具選項] 對話方塊隨即開啟。 若要啟用此選項,請選取 [ 防止在模組載入時使用預先編譯的映像 ] 核取方塊,然後選取 [確定]。 選中此選項時,會停用載入 NGEN 或 RDR 預先編譯映像。

防止在模組載入時使用預先編譯的映像 (僅限受管理,重新啟動時重設):選取時,會停用載入 NGEN 或準備載入 (RDR) 預先編譯的映像。

設定 Just-In-Time 偵錯:當您選取此連結時,會開啟 [Visual Studio 偵錯工具選項] 對話方塊。 若要啟用此選項,請選取 [ 為這些類型的程式碼啟用 Just-in-Time 偵錯 ] 核取方塊。 選取一或多個程式碼類型: 原生受控 (.NET Framework),然後選取 [ 確定]。 此選項會啟用所選程式碼類型的 Just-in-Time 偵錯。

略過屬性和運算符(僅限 Managed):防止調試器進入 Managed 程式代碼中的屬性和運算符。

啟用屬性評估和其他隱含函數調用:開啟變數視窗中屬性和隱含函數調用的自動評估,以及 [QuickWatch] 對話框。

  • 變數視窗中的物件上呼叫字串轉換函數:在評估變數視窗中的物件時執行隱含字串轉換呼叫。 結果會顯示為字串,而不是類型名稱。 僅適用於在 C# 程式代碼中偵錯時。 此設定可以由 DebuggerDisplay 屬性覆寫 (請參閱 使用 DebuggerDisplay 屬性) 。

啟用來源伺服器支援:告訴 Visual Studio 調試程式從實作 SrcSrv (srcsrv.dll) 通訊協定的來源伺服器取得來源檔案。 Team Foundation Server 和適用於 Windows 的偵錯工具是實作通訊協定的兩個來源伺服器。 如需 SrcSrv 設定的詳細資訊,請參閱 SrcSrv 檔。 此外,請參閱 指定符號 (.pdb) 和原始程式檔

重要

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

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

  • 允許來源伺服器用於部分信任元件 (僅限受控):當啟用來源伺服器支援時,此設定會覆寫不檢索部分信任元件的來源的預設行為。

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

啟用來源連結支援:告知Visual Studio調試程式下載包含來源連結資訊的 .pdb 檔案來源檔案。 如需來源連結的詳細資訊,請參閱 來源連結規格

重要

由於來源連結會使用 http 或 https 下載檔案,因此請確定您信任 .pdb 檔案。

  • 將所有來源鏈接要求的驗證回退至 Git 憑證管理器:啟用來源鏈接支持時,如果來源鏈接的請求驗證失敗,Visual Studio 會呼叫 Git 憑證管理器。

高亮顯示斷點和當前語句的整個程式碼行(僅限C++):當調試工具高亮顯示斷點或當前語句時,它會反白顯示整個行。

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

將所有 [輸出] 視窗文字重新導向至 [即時運算] 視窗:將通常出現在 [輸出] 視窗中的所有調試程式訊息傳送至 [即時運算] 視窗。

在變數視窗中顯示物件的原始結構:關閉所有物件結構檢視自定義。 如需有關自定義檢視的更多資訊,請參閱「建立 Managed 物件的自定義檢視」。

啟用 ASP.NET 的 JavaScript 偵錯 (Chrome 和 Edge):啟用 ASP.NET 應用程式的腳本偵錯工具。 首次在 Chrome 中使用時,您可能需要登入瀏覽器才能啟用已安裝的 Chrome 擴充功能。 停用此選項以還原為舊版行為。

啟用 ASP.NET 的 JavaScript 偵錯 (Chrome、Edge 和 IE) :啟用 ASP.NET 應用程式的腳本偵錯工具。 首次在 Chrome 中使用時,您可能需要登入瀏覽器才能啟用已安裝的 Chrome 擴充功能。 停用此選項以還原為舊版行為。

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

載入 dll 匯出(僅限原生):載入 dll 匯出數據表。 如果您使用 Windows 訊息、Windows 程式 (WindowProcs)、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:當您偵錯時,程式碼視窗會顯示指定方法呼叫的經過時間。

啟用熱重新載入:在偵錯時啟用熱重新載入功能。

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

  • 警告過時程式代碼(僅限原生):獲得過時程式代碼的相關警告。

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

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

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

  • 警告過時程式代碼(僅限原生):獲得過時程式代碼的相關警告。

偵錯時顯示 [執行到按一下] 按鈕:選取此選項時,偵錯時會顯示 [執行到按一下] 按鈕。

偵錯時在編輯器中顯示 [執行以按一下] 按鈕:選取此選項時,偵錯時會顯示 [執行以按一下 ] 按鈕。

偵錯停止時自動關閉主控台:告訴 Visual Studio 在偵錯會話結束時關閉控制台。

啟用快速表達式評估(僅限 Managed):允許調試程式藉由模擬執行簡單屬性和方法來嘗試更快速的評估。

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

在偵錯程式中斷時將 Visual Studio 帶到前景:當您在偵錯程式中暫停時,將 Visual Studio 切換至最前端。

讓展開的資料提示保持開啟,直到按一下離開為止:選取此選項時,展開的資料提示會保持展開狀態,直到您按一下離開為止。

[方案總管] 中啟用 [外部來源] 節點:選取時,會在 [外部來源] 節點下顯示反編譯的程式碼。

在需要時自動反編譯為原始碼(僅限受控代碼):選取時,會在逐步執行外部代碼時,自動將外部 .NET 代碼反編譯為原始碼。

醒目提示目前陳述式和具有中斷點的陳述式:當偵錯工具醒目提示中斷點或目前陳述式時,它會醒目提示整行。

偵錯時在編輯器中顯示變數值內嵌:在偵錯工具中醒目提示的陳述式中顯示變數的值。

  • 顯示內嵌傳回值:顯示偵錯工具中醒目提示陳述式的傳回值。

  • 內嵌顯示函式引數值:在偵錯工具中醒目提示的陳述式中顯示函式引數的值。

  • 顯示行內表達式的值:在偵錯工具中顯示當前行表達式的值。

舊版 Visual Studio 中可用的選項

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

啟用適用於UWP JavaScript Apps的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 Managed 調試程式,這是偵錯C++/CLI 程式代碼時所需的。

使用原生相容性模式:選取此選項時,調試程式會使用Visual Studio 2010原生調試程式,而不是新的原生調試程式。

  • 當您偵錯 .NET C++ 程式碼時,請使用此選項,因為新的偵錯引擎不支援評估 .NET C++ 運算式。 不過,啟用原生相容性模式會停用許多相依於目前調試程序實作運作的功能。 例如,舊版引擎缺少許多內建類型的可視化檢視,例如Visual Studio 2015專案中的 std::string。 在這些情況下,請使用 Visual Studio 2013 項目獲得最佳偵錯體驗。

另請參閱