偵錯工具檢視應用程式範例

更新:2007 年 11 月

這個範例會示範 Microsoft Visual Studio 2005 中的一項新功能,這項功能可以變更在偵錯視窗中檢視類別的方式。您可以藉由將 DebuggerDisplayAttribute 之類的新屬性 (Attribute) 套用至類別及其成員,來控制型別的值、型別和名稱欄位在 [區域變數] 偵錯視窗中顯示的方式,也可以控制在檢視時,是否要顯示、隱藏或展開上述欄位。這個範例目前只能在 Microsoft Visual C# 2005 中使用。

如需使用這些範例的詳細資訊,請參閱下列主題:

這個範例包括三個含有偵錯工具屬性之類別的原始程式檔 (Source File),以及三個不含偵錯工具屬性的原始程式檔,如下表所示:

包含偵錯工具屬性的檔案

不含偵錯工具屬性的檔案

DebugAddress.cs

NonDebugAddress.cs

DebugCustomer.cs

NonDebugCustomer.cs

DebugCustomerName.cs

NonDebugCustomerName.cs

DebuggerViewsExample.cs 檔包含主控台應用程式的進入點 (Entry Point),兩組檔案都會使用。取消註解偵錯版本 (DebugAddress.cs、DebugCustomer.cs 和 DebugCustomerName.cs) 中的程式碼,以執行範例。

Download sample

若要使用命令提示字元建置範例

  1. 開啟 [命令提示字元] 視窗,並巡覽至 DebuggerViewsCS 目錄的 \CS 子目錄。如需必要設定和 SDK 命令提示字元的詳細資訊,請參閱 HOW TO:設定範例設定

  2. 在命令列中輸入 msbuild DebuggerViewsCS.sln。

    注意事項:

    這個範例示範 Visual Studio 的功能。您必須在 Visual Studio 偵錯環境中啟動及執行,才能檢視其輸出。

若要使用 Visual Studio 建置範例

  1. 開啟 [Windows 檔案總管],並巡覽至 DebuggerViewsCS 目錄的 \ CS 子目錄。

  2. 按兩下 DebuggerViewsCS.sln,在 Visual Studio 2005 中開啟檔案。

  3. 在 [建置] 功能表上,按一下 [建置方案]。

若要執行範例

  1. 在 Visual Studio 的 [檢視] 功能表上,按一下 [方案總管]。

  2. 在 [方案總管] 視窗中按兩下 DebuggerViewsExample.cs,在 Visual Studio 2005 中開啟檔案。

  3. 在 [專案] 功能表上,按一下 [顯示所有檔案]。

  4. 在 GetCustomers 方法產生 Customer 型別之變數的那行程式碼中插入中斷點 (按 F9),如以下所示:

    Customer c = new Customer(cn, Address.GetAddressById(customerAddresses, cn.Id));

  5. 按 F5,以便在 Visual Studio 2005 偵錯環境中啟動並執行範例應用程式。

  6. 當應用程式於中斷點中斷時,請按 F10 到下一行程式碼。

  7. 展開內含應用程式屬性、集合及其他物件的階層架構,觀察 [區域變數] 視窗中目前的值。若要顯示 [區域變數] 視窗,請按一下 [偵錯] 功能表中的 [視窗],再按 [區域變數]。

  8. 在 [偵錯] 功能表上按一下 [停止偵錯],按 Shift+F5 或按一下 [偵錯] 工具列的圖示,停止執行程式碼。

  9. 將三個檔案中,名稱以 Debug 開頭的程式碼取消註解。接著將三個名稱以 NonDebug 開頭之檔案中的程式碼標記為註解,或者在 [方案總管] 視窗中選取這三個檔案、在上面按一下滑鼠右鍵,然後再按 [從專案移除]。

  10. 在 [偵錯] 功能表上,選擇 [啟動] 以相同的中斷點設定。當應用程式中斷時,觀察 [區域變數] 視窗中值資料行的細節,此時應該會有由偵錯屬性提供的其他資訊。

備註

為了提供使用偵錯屬性的範例,DebugCustomer.cs 檔會包含 CustomerName 類別的下列 DebuggerDisplay 屬性:

[DebuggerDisplay("{(FirstName == null) ? \"\":FirstName} {LastName} ==> (Customer ID = {Id})")]

進行偵錯時,這個屬性會在 [區域變數] 視窗中顯示以下的值。名稱 cn 是 CustomerName 物件的執行個體。

名稱

類型

cn

"Sally" "HighBridge" ==> (Customer ID = 12345)

Microsoft.Samples.CustomerName

如果沒有這個屬性,[區域變數] 視窗中會顯示以下的值:

名稱

類型

cn

{Microsoft.Samples.CustomerName}

Microsoft.Samples.CustomerName

請參閱

其他資源

Visual Studio 偵錯