2010-04-07 71 views
1

我有一個關於對象轉儲的問題。.NET對象轉儲

0:000> !do 0x012817b8

Name: blabla.Union2 
MethodTable: 009231ac 
EEClass: 00921548 
Size: 16(0x10) bytes 
Fields: 
     MT Field Offset     Type VT  Attr Value Name 
790fd0f0 4000003  4  System.Object 0 instance 00000000 o 
7912d7c0 4000004  8  System.Int32[] 0 instance 00000000 arr 

什麼是性意味:字段,膠印,VT?

回答

2

這已經有一段時間,因爲我與.NET元數據層的工作,但IIRC:
- 字段是工會的那場令牌(包含一個值,因爲這些字段)
- Offset是字節(聯合是16字節,字段1開始於字節4,字段2開始於字節8)
-VT是V-表插槽(由於這些是字段而不是方法,因此不適用)

+0

非常感謝! ;) – Thomas 2010-04-07 13:49:14

+0

沒問題,我只是感到驚訝,其他人都對這個東西感興趣! 「低級的.net元數據」是我認爲永遠不會有用的知識。 8) – Task 2010-04-07 14:47:34

0

而且你也可以通過做dd youobjectaddress+4 l1

,你可以使用它在windbg腳本中使用poi(youobjectaddress+4),它基本上是第一個字段的指針o