!heap -p -a <address>
При включенной куче страниц это выводит полезную информацию (потенциально включая стек вызовов последнего человека, который выделил / освободил этот блок кучи) - я думаю, что это визуализирует _DPH_HEAP_BLOCK.
Без включенной кучи страниц она просто показывает основную информацию - что не очень полезно. Я думаю, что это обычная структура _HEAP_ENTRY. Отладка двойного освобождения / etc в точке второго доступа практически невозможна (по крайней мере, простыми смертными, такими как я).
Когда я сталкиваюсь с проблемой кучи, я немедленно включаю проверку кучи через AppVerifier, затем снова делаю репо. Это делает две вещи:
Он перемещает AV от доступа к освобожденной памяти «дальше» к более раннему моменту времени, иногда делая очевидной причину ошибок
Это заставляет команду !heap -p -a <address>
выводить гораздо больше полезной информации, включая стек вызовов тех, кто ее в последний раз освободил (!!)
! Heap + приложение-верификатор довольно круто и, вероятно, уступает только точкам останова записи в память в списке ninja-windbg-foo, который должен знать каждый.