.NET Object Dump

时间:2010-04-07 13:31:42

标签: .net clr

我对转储对象有疑问。

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

有什么意义:Field,Offset,VT?

2 个答案:

答案 0 :(得分:2)

自从我使用.net元数据层以来已经有一段时间了,但是IIRC:
- Field是union的该字段的标记(包含一个值,因为这些是字段)
- Offset是union中该字段的字节偏移量(union为16字节,field1从字节4开始,field2从字节8开始)
- VT是V-Table插槽(不适用,因为它们是字段而不是方法)

答案 1 :(得分:0)

您还可以通过dd youobjectaddress+4 l1

查看字段的内存

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