探討中斷點設定選項
- 6 分鐘
調試程式可用來協助您分析程序代碼,並可用來控制程式的運行時間執行。 當您啟動 Visual Studio Code 調試程式時,它會立即開始執行您的程式代碼。 因為您的程式代碼會在微秒內執行,因此有效的程式代碼偵錯取決於您在程式代碼內的任何語句上暫停程式的能力。 斷點可用來指定程式代碼執行暫停的位置。
設定斷點
Visual Studio Code 提供數種方式來設定程式代碼中的斷點。 例如:
- 程式碼編輯器:您可以在 Visual Studio Code 中,通過點擊行號左側的列,來設定斷點。
- 執行選單:您可以從執行選單切換斷點的開啟/關閉狀態。 編輯器中的目前程式代碼行會指定套用 切換斷點 動作的位置。
設定斷點時,編輯器中行號左邊會顯示紅色圓圈。 當您在調試程式中執行程式代碼時,執行會在斷點暫停。
移除、停用和啟用中斷點
在應用程式中設定斷點並使用這些斷點來隔離問題之後,您可能會想要移除或停用斷點。
若要移除斷點,請重複用來設定斷點的動作。 例如,按一下行號左側的紅色圓圈,或使用 [執行] 功能表上的切換中斷點選項。
如果您想要保留中斷點位置,但不想在下一個偵錯工作階段期間加以觸發,該怎麼做? Visual Studio Code 可讓您「停用」中斷點,而不是將其完全移除。 若要停用作用中的斷點,請以滑鼠右鍵按一下行號左邊的紅點,然後從快捷功能表中選取 停用斷點。
當您停用斷點時,行號左邊的紅點會變更為灰色點。
備註
當您以滑鼠右鍵按兩下斷點時出現的作選單,也包含 [移除斷點] 和 [ 編輯斷點] 的選項。 本單元稍後的條件式中斷點和記錄點相關章節將探討 [編輯中斷點] 選項。
除了在編輯器中管理個別斷點之外,[ 執行 ] 功能表也提供選項來對所有斷點進行統一操作:
- 啟用所有斷點:使用此選項來啟用所有停用的斷點。
- 停用所有斷點:使用此選項停用所有斷點。
- 拿掉所有斷點:使用此選項移除所有斷點(同時移除已啟用和停用的斷點)。
條件式中斷點
條件式中斷點是特殊類型的中斷點,只有在符合指定條件時才會觸發。 例如,您可以建立條件斷點,在名為 numItems 的變數大於 5 時暫停執行。
您已經看到,以滑鼠右鍵按下斷點會開啟包含編輯斷點選項的內容功能表。 選取 [編輯斷點 ] 可讓您將標準斷點變更為條件斷點。
除了編輯現有的斷點之外,您也可以直接設定條件斷點。 如果您以滑鼠右鍵按兩下 [而不是按鼠左鍵] 來設定新的斷點,您可以選擇建立條件斷點。
當您建立條件斷點時,您必須指定代表條件的表達式。
每次調試程式遇到條件斷點時,都會評估表達式。 如果表達式評估為 true,則會觸發斷點並暫停執行。 如果表達式評估為 false,則執行會繼續,就像沒有斷點一樣。
例如,假設您需要偵錯循環程式代碼區塊 for 內的某些程序代碼。 您注意到,只有在迴圈完成數次反覆運算後,才會發生您正在偵錯的問題。 您決定要在迴圈的控制變數 i 大於 3 時觸發斷點。 您可以建立條件斷點,並指定表示式 i > 3。
當您在偵錯工具中執行程式碼時,若 i > 3 評估為 true,則會略過中斷點直到反覆運算為止。 當 時 i = 4,執行會在條件斷點上暫停。
支援 Hit Count 中斷點和 Logpoints
Visual Studio Code 的 C# 除錯程式也支援 Hit Count 斷點和 Logpoints。
「叫用次數」中斷點可用來指定中斷點必須出現多少次之後才會「中斷」執行。 您可以在建立新的斷點時指定點擊計數值(使用 [新增條件斷點] 動作,或修改現有的斷點時(使用 [編輯條件] 動作)。 在這兩種情況下,有下拉功能表的內嵌文本框隨即開啟,您可以在其中輸入點擊計數值。
「記錄點」是中斷點的變體,它不會「中斷」到偵錯工具,而是將訊息記錄到主控台。 在無法暫停或停止的生產環境中進行偵錯時,記錄點特別適合用來插入日誌記錄。 Logpoint 會以「菱形」圖示來表示,而不是填滿的圓形。 記錄訊息是純文本,但可以在大括弧('{}')內包含需評估的表達式。
記錄點可包含條件式「運算式」和/或「叫用次數」,以進一步控制產生記錄訊息的時間點。 例如,您可以將 i = {i} 的記錄點訊息與叫用次數條件 >4 結合,以產生記錄訊息,如下所示:
回顧
以下為本單元須記住的一些重點:
- Visual Studio Code 可讓您在程式代碼編輯器或 [ 執行 ] 功能表中設定斷點。 斷點代碼行會以行號左邊的紅點標示。
- 可以使用與設定斷點相同的選項來移除或停用斷點。 影響所有斷點的批次作業可以在 [ 執行 ] 選單中找到。
- 條件斷點可用來在符合指定條件或達到「點擊計數」時暫停執行。
- Logpoint 可用來將資訊記錄到終端機,而不需要暫停執行或插入程序代碼。