Просмотр актуальных данных в! Адрес REGionUsageIsVAD WinDBG - PullRequest
1 голос
/ 17 мая 2011

Я использовал !address -RegionusageIsVAD и нашел запись очень большого размера.

Как я могу посмотреть, кто написал эти данные и какие данные находятся по указанному адресу?

Exmaple output:

099230000 : 099230000 - 01000000
                Type     00020000 MEM_PRIVATE
                Protect  00000004 PAGE_READWRITE
                State    00001000 MEM_COMMIT
                Usage    RegionUsageIsVAD

Итак, я хочу посмотреть, какие данные находятся в этом адресе и кто их выделил.

1 Ответ

4 голосов
/ 22 октября 2011

High RegionUsageIsVAD обычно происходит по двум причинам:

  • Это приложение .NET.В этом случае CLR выделяет блок памяти и выполняет свои собственные распределения внутри него.Вы можете устранить эту проблему с расширением WinDbg sos и посмотреть, много ли у вас осталось объектов.
  • Это не приложение .NET.В этом случае приложение вызывает VirtualAlloc для выделения блока памяти.Поскольку для этого вида распределения невозможно записать обратные трассы, вы можете поставить точку останова на VirtualAlloc и выгрузить стек для каждого вызова (bp kernel32! VirtualAlloc "kb; gc;").Это может дать вам подсказки о том, откуда поступил звонок.
...