快速入門:使用 Visual Studio 調試程式對 C# 或 Visual Basic 進行偵錯

在這份快速入門中,你將探討如何使用 Visual Studio 除錯器來除錯你的 C# 或 Visual Basic 應用程式。 本文提供快速學習除錯器基本功能的方法。

如果你還沒有Visual Studio,可以從Visual Studio下載頁面安裝免費試用版。

建立新專案

先建立一個新專案,這樣你就有一些程式碼可以在除錯器裡檢查。 這個範例會為 .NET 建立一個 C# 專案。

  1. 開啟 Visual Studio 並建立新的專案。

    • 如果 開始視窗 沒開啟,請選擇 檔案>開始視窗。

    • 在開始視窗中,選擇 建立新專案。

  2. 在 「建立新專案 」視窗中,設定篩選條件並搜尋專案範本。

    • 在 搜尋範本 框中輸入 控制台。

    • 展開 語言 下拉選單,選擇 C#。

    • 展開 Platform 下拉選單,選擇 Windows。

  3. 在結果列表中,選擇 Console App 範本,然後選擇 「下一步」。

    如果你沒看到 Console App 專案範本,請選擇 「繼續無程式碼 」選項。

    1. 選擇 Tools>取得工具與功能...,這會開啟Visual Studio安裝程式。

    2. 在安裝程式視窗中,選擇 .NET Desktop Development 工作負載的勾選框,然後選擇 Modify。

      你的 Visual Studio 安裝會更新,包含所選的 .NET 工作負載。

    3. 更新完成後,選擇 檔案>開始視窗,並依 照前述指示 選擇所需的範本。

  4. 設定新專案:

    1. 輸入 Project 名稱 和 Solution 名稱,或使用預設值。

    2. 使用預設 的位置 或選擇瀏覽(...)來建立專案到另一個資料夾。

    3. 選取 下一步。

    4. 使用推薦的目標Framework(預設為 .NET 10.0 長期支援)。

    5. 選取 ,創建。

    Visual Studio 會建立你的新專案,並將專案檔案加入指定的資料夾。

更新專案程式碼

更新專案範本中提供的一些程式碼,讓你有更多陳述可以在除錯器中測試。

  1. 在 方案總管 面板中,選擇 Program.cs 項目。

    Program.cs檔案會在程式碼編輯器中開啟。 (如果你在Visual Basic工作,請選擇Module1.vb項目。)

  2. 以下列程式代碼取代檔案內容。

     internal class Program
     {
         private static void doWork()
         {
             LinkedList<int> c1 = new LinkedList<int>();
    
             c1.AddLast(10);
             c1.AddLast(20);
    
             LinkedList<int> c2 = new LinkedList<int>(c1);
             int i = c2.First.Value;
             int j = c2.First.Value;
             Console.Write("The first element is ");
             Console.Write(i);
             Console.Write("\n");
             Console.Write("The second element is ");
             Console.Write(j);
             Console.Write("\n");
         }
    
         static int Main()
         {
             // using namespace std;
             doWork();
             return 0;
         }
     }
    

    用 Ctrl+S 鍵盤快捷鍵儲存你的更改。


設定中斷點

中斷點是一個位置標記,用來指出 Visual Studio 應在哪裡暫停執行您的程式碼。 當斷點設定時,你可以查看變數目前的值,檢視記憶體的行為,並檢查是否有特定分支的程式碼在執行。 斷點是除錯中最基本的功能。

  1. 要設定中斷點,請在程式碼中找到對 doWork() 函式的呼叫,然後選取同一行的左側邊欄。

    當中斷點設定後,程式碼對應行的左側邊欄中會顯示一個紅點。

    截圖,展示如何在Visual Studio除錯器中設定中斷點。

    截圖,展示如何在 Visual Studio 2022 除錯器中設定中斷點。

  2. 使用 F5 鍵快捷鍵開始除錯(或選擇 除錯>開始除錯)。

    顯示除錯器在 Visual Studio 中於已設定的中斷點處暫停的螢幕擷取畫面。

    顯示 Visual Studio 2022 中除錯器在設定的中斷點處暫停的螢幕擷取畫面。

    程式碼執行會在呼叫 doWork() 函式前立即暫停。

    偵錯工具會在您設定的斷點處暫停。 黃色箭頭標示除錯器暫停應用程式執行的語句。

設定條件斷點

如果你在迴圈或遞迴中設定斷點,或是你有許多經常跨入的斷點,請使用 條件斷點。

此方法有助於確保 只有在符合 特定條件時,程式碼才會被暫停。 條件斷點可以節省時間,也讓難以重現的問題更容易除錯。

逐一檢視你的程式碼

Visual Studio 提供多種方式指示除錯器繼續執行應用程式。 以下範例顯示一個實用的指令,用來逐步檢視你的程式碼。

當程式碼在中斷點暫停時,將滑鼠游標停留在陳述式 c1.AddLast(20) 上方,直到您看到綠色的 按一下即可執行到(將執行移至此處) 圖示。 選擇圖示。

顯示如何在 Visual Studio 除錯器中使用「執行至點選位置」動作的螢幕擷取畫面。

當程式碼在中斷點暫停時,將滑鼠游標移至陳述式 c1.AddLast(20) 上,直到看見綠色的 按一下即可執行(執行到這裡) 圖示。 選擇圖示。

顯示如何在 Visual Studio 2022 除錯器中使用「執行至點選處」動作的螢幕擷取畫面。

應用程式會繼續執行,呼叫 doWork,並在你選擇 執行點擊的程式碼行上暫停。

用來逐步執行程式碼的常用鍵盤命令包括 F10 和 F11。 欲了解更多更深入的指令,請參見 Visual Studio除錯器概述。

檢查資料提示中的變數

你可以利用 資料提示 功能檢查變數的狀態。

  1. 在目前程式碼行(以黃色執行指標標記)中,將滑鼠移到 c1 物件上方即可看到資料提示。

    截圖,展示如何在Visual Studio除錯器中查看程式碼變數的資料提示。

    截圖,展示如何在 Visual Studio 2022 除錯器中查看程式碼變數的資料提示。

    數據提示會顯示變數的 c1 目前值,並可讓您檢查其屬性。

    在除錯時,如果你看到某個變數出現非預期的值,程式裡很可能有錯誤。 錯誤可能出在呼叫變數的程式碼,或是前一行。

  2. 展開資料提示以查看 c1 物件的目前屬性值。

  3. 若要在程式碼執行時繼續檢查 c1 的值,請選取資料提示上的 圖釘 圖示。

    針腳動作會讓資料尖端保持開啟。 當程式碼執行時,釘選尖端的值會改變,顯示被監視物件的當前狀態。

    你可以將釘選的提示移到 IDE 中的任何位置,這樣在除錯時就不會妨礙你查看其他項目。

除錯時啟用熱重載

在除錯時,如果你發現程式碼中有想測試的變更,可以使用 熱重新載入 功能(之前稱為 Edit and Continue)。

  1. 選擇該語句的 c2.First.Value 第二個實例,並將程式碼改為 c2.Last.Value。

  2. 請按 F10 幾次(或選取 偵錯>略過 幾次),讓偵錯工具繼續往下執行並執行已編輯的程式碼。

    動畫,展示如何在 Visual Studio 除錯器中使用「熱重新載入」功能進行編輯並繼續執行。

    動畫,展示如何在 2022 Visual Studio 除錯器中編輯並繼續使用「熱重新載入」功能。

    F10 會一次推進調試程式一個語句,但會略過函式而不是進入函式(您略過的程式碼仍然會執行)。

欲了解更多此功能與限制,請參閱 Configure 熱重新載入。

後續步驟