Операционная система Microsoft Windows 3.1 для программиста -том 3


Утилита HEAPWALK - часть 2


Те объекты, которые давно не использовались, будут расположены в верхней части списка.

Если выбрать из меню "Walk" строку "GC(0) and Walk", утилита выполнит дефрагментацию глобальной области памяти, запросит блок памяти размером 0 байт и отобразит список объектов.

С помощью строки "GC(-1) and Walk" вы можете предпринять попытку удалить все удаляемые сегменты и просмотреть список объектов.

Остальные строки меню "Walk" описаны в руководстве по утилитам, входящим в состав SDK.

Для удобства отображения вы можете отсортировать блоки памяти в списке при помощи меню "Sort". С помощью этого меню можно выполнить сортировку по адресам блоков памяти (строка "Address" меню "Sort"), по именам модулей, которым принадлежат блоки памяти (строка "Module"), по размеру блоков памяти (строка "Size"), типу объектов (строка "Type"). С помощью строки "Refresh Seg Names" вы можете просмотреть имена сегментов, загруженных в память после запуска утилиты HEAPWALK.

Вы можете выбрать любую строку в списке объектов и просмотреть соответствующий ему блок памяти с помощью меню "Object".

Строка "Show" меню "Object" позволяет просмотреть содержимое блока памяти в виде шестнадцатеричного дампа памяти или ресурса (пиктограммы, изображения bitmap, меню, диалоговой панели и т. д.). На рис. 2.13 в окне "Resource Bitmap" можно увидеть изображение пиктограммы, соответствующей выбранному блоку памяти.

Рис. 2.13. Просмотр пиктограммы

С помощью строки "Discard" можно удалить выбранный объект из памяти.

Объект может быть отмечен как ближайший кандидат на удаление (строка "Oldest") или как объект, который должен быть удален в последнюю очередь (строка "Newest").

Строка "LocalWalk" позволяет вам просмотреть локальную область памяти для выбранного объекта (если у этого объекта есть локальная область памяти). Эта область памяти отображается в отдельном окне (рис. 2.14).

Рис. 2.14. Просмотр локальной области памяти

С помощью меню "Alloc" вы можете заказывать всю свободную память (строка "Allocate All of Memory") и освобождать блоки памяти различного размера (строки "Free All", "Free 1K", ..., "Free 50K", "Free XK").




Начало  Назад  Вперед



Книжный магазин