共用方式為


如何:監看偵錯工具中的運算式

您可以在 [監看式] 視窗和 [快速監看式] 對話方塊中,輸入想要在偵錯工作階段期間監看的變數名稱和運算式。

[快速監看式] 對話方塊能夠讓您一次檢視單一變數或運算式。 若要快速檢視單一值或較大的資料結構,這個方法就很有用。 [監看式] 視窗可以儲存想要在偵錯工作階段期間檢視的一些變數和運算式。 某些 Visual Studio 版本有多個 [監看式] 視窗,編號從 [監看式 1] 到 [監看式 4]。

如需如何開啟 [監看式] 或 [快速監看式] 視窗的詳細資訊,請參閱 如何:使用偵錯工具變數視窗

變數名稱是您可以輸入的最簡單運算式。 如果正在偵錯機器碼,則可以使用暫存器名稱以及變數名稱。 但是,偵錯工具能夠接受比這個複雜許多的運算式。 例如,您可以輸入下列運算式以尋找三個變數的平均值:

(var1 + var2 + var3) / 3

在 C# 中,可以輸入物件 ID 或是別名,而不是物件名稱。

偵錯工具接受 [監看式] 視窗中大部分的有效語言運算式。 如需詳細資訊,請參閱偵錯工具中的運算式

如果在設計機器碼程式時,您有時候可能需要限定變數名稱,或是包含變數名稱的運算式內容。 內容表示變數所在的函式、原始程式檔和模組。 如果您需要執行這個動作,可以使用內容運算子語法。 如需詳細資訊,請參閱Using context operators to specify a symbol

影響程式狀態的運算式

評估某些運算式可能會變更變數的值,或是影響程式的狀態。 例如,評估下列運算式會變更 var1 的值:

var1 = var2

會變更資料的運算式就是具有副作用。 如果在 [監看式] 視窗中輸入有副作用的運算式,每次 [監看式] 視窗評估運算式時,則會發生副作用。 如果您並未察覺到運算式有副作用 (Side Effect),這會產生未預期的結果。 已知有副作用的運算式只會評估一次,就是在第一次輸入它的時候。 後續評估都會停用。 您可以按一下值旁邊的更新圖示,手動覆寫這個行為。

未預期的副作用通常是函式評估的結果。 例如,可以在 [監看式] 視窗中輸入下列函式呼叫:

Func1(var1)

如果從 [監看式] 視窗或 [快速監看式] 呼叫函式,呼叫中的函式可能會變更資料,而發生副作用。 若要避免在函式評估時產生可能的未預期副作用,其中一種方法是關閉 [選項] 對話方塊中的自動函式評估。 這會停用較新語言功能 (例如屬性) 的自動評估, 但是比較安全。

注意事項注意事項

在 [監看式] 視窗中檢查運算式時,可能會看到類似兩個綠色箭號,在一個綠色圓圈中以反方向環繞的更新圖示。特別是在您關閉自動函式評估時,就會看到這個圖示。更新圖示會指出錯誤或過時的值。如需詳細資訊,請參閱如何:重新整理監看值

針對機器碼和 C#,您可以使用格式規範來指定運算式值的顯示格式。 如需詳細資訊,請參閱C++ 中的格式規範C# 中的格式規範

Visual Studio 偵錯工具會自動展開通用資料型別,以顯示最重要的項目。 您可以為自訂資料型別加入擴充。 如需詳細資訊,請參閱顯示自訂資料類型視覺化檢視

注意事項注意事項

根據您目前使用的設定或版本,您所看到的對話方塊與功能表命令可能會與 [說明] 中描述的不同。若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。如需詳細資訊,請參閱Visual Studio 中的自訂開發設定

若要在監看式視窗中評估運算式

  1. 在 [監看式] 視窗的 [名稱] 欄位中,按一下空的資料列。 此時,偵錯工具必須處於中斷模式。 輸入或貼上想要監看的變數名稱或運算式。

    -或-

    將變數拖曳到 [監看式] 視窗中的資料列中。

  2. ENTER

    結果出現在 [] 欄位中。 如果您輸入陣列或物件變數的名稱,樹狀目錄控制項就會出現在 [名稱] 欄位中的名稱旁邊。 展開或摺疊 [名稱] 欄位中的變數。

    運算式將留在 [監看式] 視窗內,直到您移除它。

若要在快速監看式中評估運算式

  1. 在 [快速監看式] 對話方塊內輸入或貼入變數、暫存器或運算式到 [運算式] 文字方塊中

  2. 按一下 [重新評估] 或按 ENTER。

  3. 此值出現在 [目前值] 方塊中。

  4. 如果在 [運算式] 方塊中輸入陣列或物件變數的名稱,樹狀目錄控制項就會出現在 [目前值] 方塊中的名稱旁邊。 展開或摺疊 [名稱] 欄位中的變數。

若要在快速監看式中重新評估先前的運算式

  1. 在 [快速監看式] 對話方塊中,按一下出現在 [運算式] 方塊右邊的向下鍵。

  2. 從下拉式清單內選擇先前運算式中的某一項。

  3. 按一下 [重新評估]。

請參閱

工作

如何:使用偵錯工具變數視窗

其他資源

變數視窗