Visual Studio 調試系列6 監視變量(使用監視窗口和快速監視窗口)

當你進行調試時,可使用 監視窗口快速監視窗口 來監視變量和表達式。 僅在調試會話期間,這兩個窗口才可用。javascript

監視窗口能夠在調試時一次顯示多個變量。 快速監視對話框一次僅顯示單個變量,並能夠繼續調試以前,必須關閉。html

01 觀察使用監視窗口變量
示例代碼:
private static void Main(string[] args) { int a, b, c; a = 1; b = 2; c = 0; for (int i = 0; i < 10; i++) { a++; b *= 2; c = a + b; } Console.WriteLine("Press any key to exit."); // 在調試模式下保持控制檯打開
 Console.ReadKey(); }
  1. 在c = a + b;行設置斷點,按F9。java

  2. 開始調試經過選擇綠色啓動箭頭或調試 > 開始調試,或按F5。 在斷點處暫停執行。python

  3. 打開監視窗口,經過選擇窗口調試 > Windows > 監視 > 觀看 1,或按Ctrl+Alt+W > 1.windows

    能夠打開其餘Watch窗口中的,選擇 windows 2, 3,或者4。api

  4. 在監視窗口中,選擇空的行,並編輯寫入類型變量a。 執行相同操做bc編輯器

  5. 繼續進行調試,經過選擇調試 > 單步執行或按F11根據須要以繼續。 for循環屢次執行時,a b c 的值分別發生變化。ide

         

02 在監視窗口中使用表達式

在監視窗口中,可使用任何有效的表達式以計算其值。spa

例如,對於前面部分中的代碼,能夠獲取三個值的平均值經過輸入(a + b + c) / 3,觀看窗口:線程

在監視窗口中計算表達式的規則一般與代碼中的語言表達式的計算規則相同。 若是表達式具備語法錯誤,出現相同的編譯器錯誤,如代碼編輯器中所示。 例如,在上述表達式中的有拼寫錯誤生成中的出現此錯誤監視窗口:

監視窗口中可能會顯示一個帶有兩個波浪條紋圖標圓圈。 此圖標表示調試器會計算該表達式,由於潛在的跨線程依賴關係。 計算代碼須要暫時,運行您的應用程序中的其餘線程,但因爲在中斷模式下,應用程序中的全部線程一般已都中止。 容許其餘線程暫時運行可能對您的應用程序和調試器的狀態的意外的影響能夠忽略斷點和這些線程上的異常等事件。

03 在監視窗口中搜索
04 在監視窗口中使用對象 Id (C#和 Visual Basic)

該功能請參考《Visual Studio 調試系列3 斷點》在條件表達式中使用對象 Id (C#和F#僅)。基本相同。

05 動態視圖和監視窗口
一些腳本語言(例如,javascript或python)使用動態或duck類型,而且.NET 4.0及更高版本支持在正常調試窗口中難以觀察到的對象。
示例程序:
private static void Main(string[] args) { dynamic student = new { Name = "張三", Age = 25, Sex = "" }; Console.WriteLine("Name:" + student.Name); Console.WriteLine("Age:" + student.Age); Console.WriteLine("Sex:" + student.Sex); Console.WriteLine("Press any key to exit."); // 在調試模式下保持控制檯打開
 Console.ReadKey(); }

監視窗口中顯示這些對象做爲動態對象,從實現的類型建立 IDynamicMetaObjectProvider  接口。

動態對象節點顯示動態成員的動態對象,但不容許編輯成員值。下面3個窗口中都沒法編輯成員值。

06 觀察單個變量或使用快速監視表達式
 可使用快速監視觀察單個變量。

 在表達式文本框中輸入新的表達式,點擊【從新計算】

相關文章
相關標籤/搜索