Viewing the actual data in !address REGionUsageIsVAD WinDBG

倖福魔咒の 提交于 2019-12-08 04:30:03

问题


I used the !address -RegionusageIsVAD and found an entry that is very huge in size.

How can i view who wrote this data and what data is in that specitic address?

Exmaple output:

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

So i want to see what data is in this address and who allocated it.


回答1:


High RegionUsageIsVAD typically comes from 2 reasons :

  • this is a .NET application. In this case, the CLR allocates a block of memory and performs its own allocations inside it. You can troubleshoot this kind of issue with the sos WinDbg extension and see if you have many objects still alive.
  • this is not a .NET application. In this case, the application calls VirtualAlloc to allocate a bloc of memory. Since it is not possible to record backtraces for this kind of allocation you can put a breakpoint on VirtualAlloc and dump the stack for each call (bp kernel32!VirtualAlloc "kb;gc;"). This may give you hints of where the call comes from.


来源:https://stackoverflow.com/questions/6032482/viewing-the-actual-data-in-address-regionusageisvad-windbg

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!