.NET Object Dump - PullRequest
       13

.NET Object Dump

1 голос
/ 07 апреля 2010

У меня вопрос по поводу дампа объекта.

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 ]

2 голосов
/ 07 апреля 2010

Прошло много времени с тех пор, как я работал со слоем метаданных .net, но IIRC:
- Поле является токеном для этого поля объединения (содержит значение, так как это поля)
- Смещение - это байтовое смещение для этого поля в объединении (объединение составляет 16 байтов, поле 1 начинается с байта 4, а поле 2 начинается с байта 8)
- VT - это слот V-таблицы (не применимо, поскольку это поля, а не методы)

0 голосов
/ 07 апреля 2010

А также вы можете посмотреть на память полей, выполнив dd youobjectaddress+4 l1

и вы можете использовать его в скрипте windbg, используя poi(youobjectaddress+4), который по сути является указателем на первое поле o

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...