2010-03-04 31 views
15

我剛剛在VS.NET監視窗口中瞭解到了有關$的異常。這顯示了當前拋出的異常,並且不需要找到小驚歎號圖標並將其懸停在其上方,節省了大量時間。.NET中的Visual Studio觀察窗口中提供了哪些特殊變量?

觀察窗口中還有其他什麼特殊變量?

(注:這個問題是關於.NET,而不是C++。)

回答

8

在Visual Studio for .NET中支持Pseudovariables調試:

  • $異常:顯示最後一個異常的信息。如果沒有發生異常,則評估$exception會顯示錯誤消息。僅在Visual C#中,當異常助手被禁用時,當發生異常時,$exception會自動添加到本地人窗口中。
  • $ user:顯示運行應用程序的帳戶的帳戶信息的結構。出於安全原因,不顯示密碼信息。

僅適用於Visual Basic中的以下內容:

  • $刪除$$刪除:刪除這是在立即窗口中創建一個隱含變量。語法是$delete,變量$$delete,變量
  • $的ObjectID$ listobjectids:顯示所有活動對象ID爲指定表達式的兒童。語法是$objectid,表達式$listobjectids,表達式
  • $ Ñ:顯示具有等於Ñ對象ID的對象。
  • $ dynamic:爲實現IDynamicMetaObjectProvider的對象顯示特殊的動態視圖節點。接口。語法是$dynamic,對象。此功能僅適用於使用.NET Framework版本4的代碼。請參閱Dynamic View
8

如果你右擊監視窗口中的任何變量,您可以創建一個對象ID。這會給你一個數字,例如第一個對象ID將是1#。

對象ID代表特定的實例。然後可以在監視窗口中監視實例,就像常規變量一樣,但即使當本地引用超出範圍時,也可以繼續觀察實例。當它最終被垃圾收集時,你將無法訪問它。

2

使用「@err」將顯示GetLastError()的值,「@ err,hr」顯示錯誤消息。

+1

這是來自C++的土地(以及@eax,@clk等),但我希望能從.NET世界中獲得更多。 – scobi 2010-03-05 01:45:21

2

$ user僞變量是唯一記錄的其他變量。在VS2010中,VB.NET調試器獲取some new ones

+0

VB支持的$ dynamic也可以在C#中通過「dynamic」工作。但其他人不確定。 http://msdn.microsoft.com/en-us/library/dd998308%28v=VS.100%29.aspx – scobi 2010-03-06 01:52:34

+0

我在該MSDN文章中看到了其他內容。它支持__ComObject的自動動態視圖。棒極了。 – 2010-03-06 02:18:35

2

@ERR ;最後誤差值,由GetLastError函數()API函數返回的值相同

@TIB ;線程信息塊爲當前線程

@CLK ;未記錄的時鐘寄存器;僅在監視窗口可用

@EAX,@EBX,@ECX,@EDX,@ESI,@EDI,@EIP,@ESP,@EBP,@EFL ;英特爾CPU寄存器

@CS ,@DS,@ES,@SS,@FS,@GS ; Intel的CPU段寄存器

@ ST0,@ ST1,ST2 @,@ ST3,ST4 @,@ ST5,ST6 @,@ ST7 ;英特爾CPU浮點寄存器

相關問題