Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Расширение !pool отображает сведения о выделении определенного пула или о всем системном пуле.
!pool [Address [Flags]]
Параметры
Адрес
Указывает отображаемую запись пула. Если адрес равен -1, эта команда отображает сведения обо всех кучах в процессе.
Если адрес равен 0 или опущен, эта команда отображает сведения о куче процесса.
Флаги
Указывает уровень детализации, используемый. Это может быть любое сочетание следующих битовых значений; Значение по умолчанию равно нулю:
Bit 0 (0x1)
Позволяет отображать содержимое пула, а не только заголовки пула.
Бит 1 (0x2)
Приводит к подавлению сведений о заголовке пула для всех пулов, за исключением того, который фактически содержит указанный адрес.
Бит 31 (0x80000000)
Подавляет описание типа пула и тега пула в отображении.
DLL-библиотеки
Kdexts.dll
Дополнительная информация
Сведения о пулах памяти см. в документации по комплекту драйверов Windows (WDK) и внутренних компонентах Microsoft Windows, марку Руссиновичу и Дэвиду Соломону.
Замечания
В Windows XP и более поздних версиях Windows расширение пула !отображает тег пула , связанный с каждым выделением. Также отображается владелец этого тега пула. Это отображение основано на содержимом файла pooltag.txt. Этот файл находится в подкаталоге для установки средств отладки для Windows. Если вы хотите, можно изменить этот файл, чтобы добавить дополнительные теги пула, относящиеся к проекту.
Предупреждение при установке обновленной версии средств отладки для Windows в том же каталоге, что и текущая версия, она перезаписывает все файлы в этом каталоге, включая pooltag.txt. При изменении или замене примера файла pooltag.txt обязательно сохраните копию в другом каталоге. После переустановки отладчиков можно скопировать сохраненные pooltag.txt по умолчанию.
Если пул расширений !pool сообщает о повреждении пула, следует использовать !poolval для изучения.
Ниже приведен пример. Если адрес указывает 0xE1001050, отображаются заголовки всех пулов в этом блоке, а сам 0xE1001050 помечается звездочкой (*).
kd> !pool e1001050
e1001000 size: 40 previous size: 0 (Allocated) MmDT
e1001040 size: 10 previous size: 40 (Free) Mm
*e1001050 size: 10 previous size: 10 (Allocated) *ObDi
e1001060 size: 10 previous size: 10 (Allocated) ObDi
e1001070 size: 10 previous size: 10 (Allocated) Symt
e1001080 size: 40 previous size: 10 (Allocated) ObDm
e10010c0 size: 10 previous size: 40 (Allocated) ObDi
.....
В этом примере в правом столбце показан тег пула. Столбец слева от этого показывает, является ли пул свободным или выделенным.
Следующая команда показывает заголовки пула и содержимое пула:
kd> !pool e1001050 1
e1001000 size: 40 previous size: 0 (Allocated) MmDT
e1001008 ffffffff 0057005c 004e0049 004f0044
e1001018 ffffffff 0053005c 00730079 00650074
e1001040 size: 10 previous size: 40 (Free) Mm
e1001048 ffffffff e1007ba8 e1501a58 01028101
e1001058 ffffffff 00000000 e1000240 01028101
*e1001050 size: 10 previous size: 10 (Allocated) *ObDi
e1001058 ffffffff 00000000 e1000240 01028101
e1001068 ffffffff 00000000 e10009c0 01028101
e1001060 size: 10 previous size: 10 (Allocated) ObDi
e1001068 ffffffff 00000000 e10009c0 01028101
e1001078 ffffffff 00000000 00000000 04028101
......