共用方式為


開始在 Visual Studio 偵錯工具中使用斷點

斷點是您開發人員工具箱中最重要的偵錯技術之一。 您可以在想要中斷除錯執行的任何位置設定斷點。 例如,您可能會想要查看程式碼變數的狀態,或查看特定斷點的呼叫堆疊。

在原始碼中設定斷點

您可以在任何一行可執行的程式代碼上設定斷點。 例如,看看這個建立簡單迴圈的簡單 C# 程序代碼。

int testInt = 3;

for (int i = 0; i < 10; i++)
{
    testInt += i;
}

您可以使用變數指派(int testInt = 3)、for 迴圈或 for 迴圈內的任何程式代碼,在程式碼行上設定斷點。 如果沒有指派且沒有 getter/setter,則無法在方法簽章、命名空間或類別的宣告或變數宣告上設定斷點。

若要在原始碼中設定斷點:

  • 點擊最左邊的邊界,旁邊有一行程式碼。 您也可以選取這一行,然後按 F9,選取 [偵錯]>[切換斷點],或以滑鼠右鍵點擊並選取 [斷點],[插入斷點]>。 斷點會顯示為左邊界中的紅點。

對於大部分的語言(包括 C#),Visual Studio 會自動醒目提示斷點和當前的執行行。 對於某些語言,例如預設不會被高亮顯示的C++,您可以選擇 [工具][偵錯],然後開啟 >[選項]>[偵錯],啟用「高亮 C++ 專用的斷點和目前語句的整個原始程式行」>

設定斷點

設定斷點

若要偵錯,請按 F5 ,或選取 [偵錯]>[開始偵錯]

當您偵錯時,執行會在斷點處暫停,然後再執行該行的代碼。 斷點符號會顯示黃色箭號。

在下列範例中的斷點上,testInt 的值仍然為 3。 因此,由於變數已初始化,所以值尚未變更(設為3的值),因為黃色的語句尚未執行。

斷點執行已停止,

在下列範例中的斷點上,testInt 的值仍然為1。 因此,由於變數已初始化,所以值尚未變更(設為1值),因為黃色的語句尚未執行。

斷點執行已停止,

當除錯程式在斷點停止時,您可以查看應用程式的目前狀態,包括 變數值呼叫堆疊

例如,在下圖中,您可以在數據提示和 testInt 視窗中看到 的值。

檢視應用程式狀態的螢幕快照

以下是一些使用斷點的一般指導方針。

  • 斷點是一個可切換的開關。 您可以按下它、按 F9 ,或使用 Debug>Toggle Breakpoint 來刪除或重新插入它。

  • 若要停用斷點而不刪除斷點,請將滑鼠游標懸停在斷點上或右鍵單擊,然後選取 停用斷點。 已停用的斷點會顯示為左邊界中的空白圓點,或 斷點 視窗。 若要重新啟用斷點,請將游標懸停於斷點上或右鍵點選,然後選取 啟用斷點

  • 設定條件和動作、新增或編輯標籤,或以滑鼠右鍵點擊斷點並選取適當的命令,或者將滑鼠懸停在斷點上,然後選取 設定 圖示。

斷點的類型

Visual Studio 支援不同類型的斷點來支援不同的偵錯案例,例如僅根據指定準則啟動的條件斷點。 如需詳細資訊,請參閱 使用正確的斷點類型

在 [斷點] 視窗中管理斷點

您可以使用 [斷點] 視窗來查看和管理解決方案中的所有斷點。 這個集中式位置在大型解決方案中特別有幫助,尤其是在斷點至關重要的複雜偵錯情境中。

斷點 視窗中,您可以搜尋、排序、篩選、啟用/停用或刪除斷點。 您也可以設定條件和動作,或新增函式或數據斷點。

若要開啟 [斷點] 視窗,請選取 [偵錯>Windows>斷點],或按 Ctrl+Alt+B

斷點視窗

斷點視窗

若要選取要顯示在 [斷點] 視窗中的數據行,請選取 [[顯示資料行]。 選取欄位標題,以該欄排序斷點清單。

斷點標籤

您可以使用標籤來排序和篩選 [斷點] 視窗中的斷點清單

  1. 若要將標籤新增至斷點,請以滑鼠右鍵點擊原始碼中的斷點或 [斷點] 視窗,然後選取 [編輯標籤]。 新增標籤或選擇現有的標籤,然後選取 [確定] [確定]
  2. 斷點 視窗中,透過選擇 標籤條件或其他欄位標題,對斷點清單進行排序。 您可以在工具列中選擇 [顯示資料行],以選擇要顯示的資料行。

斷點群組

針對複雜的偵錯場景,您可能想要建立斷點群組來管理斷點。 這可讓您根據您嘗試偵錯的目前情境,快速啟用和停用斷點的邏輯分組。

在 [斷點] 視窗中,您可以透過選取 [新增 > 斷點群組],並為該群組提供名稱來建立斷點。 若要將斷點新增至群組,請以滑鼠右鍵按兩下斷點,然後選擇 [新增至斷點群組]><組名>。 或者,將斷點拖放到所需的群組中。

斷點群組的螢幕快照。

若要設定預設斷點群組,請以滑鼠右鍵點擊某個群組,然後選取[[設定為預設斷點群組]。 當您設定預設斷點群組時,新建立的斷點會自動新增至群組。

匯出和匯入斷點

若要儲存或共享斷點的狀態和位置,您可以匯出或匯入它們。

從 Visual Studio 2022 17.12 版 Preview 3 開始,斷點群組也會包含在導出和匯入的斷點中。

  • 若要將單一斷點匯出至 XML 檔案,請以滑鼠右鍵按一下原始程式碼中的斷點或 斷點 視窗中的斷點,然後選取 匯出匯出選取內容。 選擇匯出位置,然後選擇 [儲存]。 預設位置是方案資料夾。
  • 若要匯出數個斷點,請在 [斷點] 視窗中,選取斷點旁的方塊,或在 [搜尋 ] 欄位中輸入搜尋 準則。 選取 [匯出符合目前搜尋準則的所有斷點 圖示,然後儲存盤案。
  • 若要匯出所有斷點,請取消選取所有方塊,並將 [搜尋] 字段保留空白。 選取 [匯出符合目前搜尋準則的所有斷點 圖示,然後儲存盤案。
  • 若要匯入斷點,請在 [斷點] 視窗中,選取 [從檔案匯入斷點] 圖示,流覽至 XML 檔案位置,然後選取 [開啟]。

從調試程式視窗設定斷點

您也可以從 呼叫堆疊反組譯 偵錯視窗設定斷點。

在 [呼叫堆疊] 視窗中設定斷點

若要在呼叫函式傳回的指令或行中斷,您可以在 [呼叫堆棧] 視窗中設定斷點。

若要在 [呼叫堆棧] 視窗中設定斷點:

  1. 若要開啟 呼叫堆疊 視窗,您必須在偵錯期間暫停。 選取 [偵錯>Windows>呼叫堆棧],或按 Ctrl+Alt+C

  2. 在 [呼叫堆疊] 視窗中,以滑鼠右鍵單擊呼叫函式,然後選取 [斷點]>[插入斷點],或按 F9

    斷點符號會出現在呼叫堆疊左邊界的函式呼叫名稱旁邊。

呼叫堆疊斷點會以位址形式出現在 斷點 視窗中,並具有其對應於函式中下一個可執行指令的記憶體位置。

調試程式會在指令中中斷。

如需呼叫堆疊的詳細資訊,請參閱 如何:使用呼叫堆疊視窗

若要在程式代碼執行期間以可視化方式追蹤斷點,請參閱偵錯 時,在呼叫堆棧上對應方法。

在反組譯碼視窗中設定斷點

  1. 若要開啟 反編譯 視窗,您必須在偵錯期間暫停。 選擇 [偵錯>Windows>反組譯碼],或 按 Ctrl+Alt+D

  2. 在 [反組譯碼] 視窗中,點擊您想要中斷的指令左邊。 您也可以選擇它,然後按 F9,或右鍵點擊並選取 [斷點],>[插入斷點]