!heap -s не показывает растущие кучи в windbg

Я написал приложение, в котором происходит утечка памяти. В прошлом я делал следующее.

  1. найти утечку кучи с помощью !heap -s

  2. проверить кучу с помощью !heap -stat -h

  3. см. стек вызовов для распределения с помощью !heap -p -a

чтобы получить стеки вызовов, я добавляю +ust к gflags

в то время как я делал это в прошлом с большим успехом, !heap -s не показывает никакого роста сегодня? Я понятия не имею, что не так?

это похоже на то, что мои выделения находятся в куче, скрытой от !heap -s?

идеи? Я компилирую (как x86, так и x64) с помощью Visual Studio 2010 pro. Использование Windbg для отладки


person stuck    schedule 18.01.2011    source источник
comment
FWIW: я изменил свою программу для утечки тонны памяти - taskmgr показывает, что использование памяти увеличивается НАМНОГО, но !heap -s нет   -  person stuck    schedule 18.01.2011
comment
это на 64-битной машине с утечкой 64-битного приложения, windbg и gflags   -  person stuck    schedule 18.01.2011


Ответы (1)


кульминация - когда выделено ‹1 МБ (по умолчанию), они переходят к HeapAlloc(), когда они больше 1 МБ, они вместо этого переходят к VirtualAlloc

VirtualAlloc не появляется с !heap -s

person stuck    schedule 20.01.2011
comment
как ты распределяешь? Ваш собственный распределитель? - person Alex Budovski; 20.01.2011