!dumpmt противоречит !dd при анализе таблицы методов .NET

Я проверяю внутренности объекта .NET, используя WinDBG и SOS. У меня есть класс с 3 методами. Когда я выгружаю таблицу методов с помощью команды !dumpmt -md [address], я получаю описание 8 методов.

Когда я сбрасываю память с помощью команды dd [address], я не могу найти 3 метода (см. изображение — розовая рамка). Также значение 0x0003 (в красном кружке) кажется странным, потому что оно должно представлять общее количество методов (включая виртуальные), но представляет только количество невиртуальных методов. И что означает значение в черном ящике?

введите здесь описание изображения


person Eugene Belov    schedule 11.04.2016    source источник
comment
Кажется, это .NET 4. ИМХО, красный кружок неправильный. Вместо этого он должен быть около 00000004. Невиртуальные методы располагаются перед таблицей методов (отрицательные смещения). Попробуйте dd <address>-80   -  person Thomas Weller    schedule 12.04.2016
comment
Связано: stackoverflow.com/questions/33201811/   -  person Thomas Weller    schedule 12.04.2016
comment
Спасибо! Где я могу найти некоторые документы или спецификации, связанные с этой темой?   -  person Eugene Belov    schedule 12.04.2016
comment
Эти внутренние макеты могут быть изменены. Вы вряд ли найдете официальную информацию об этом. Попробуйте поискать сообщения в блоге Саши Гольдштейн (@goldshtn) или других людей, которые работают в команде .NET.   -  person Thomas Weller    schedule 12.04.2016