ского блока. Кроме того, имеется
(прод.)
|
ского блока. Кроме того, имеется специальная функция (__CrtDoForAlldientObjects), которая позволяет получить список всех клиентских блоков, распределенных к моменту ее вызова. MFC использует данный идентификатор для всех классов производных от класса cobject. Расширение MemDumperValidator тоже использует описанный механизм
|
FREE BLOCK
|
Вызов подпрограммы освобождения памяти обычно удаляет память из списков отладочной кучи. Однако если при обращении к функции CrtSetDbgFlag вы устанавливаете флажок CRTDBG DELAY FREE MEM DF, то память не освобождается, а выравнивается влево и заполняется символами OxDD
|
IGNORE BLOCK
|
Если вы временно отключаете трассировку DCRT-библиотеки, то любые распределения, выполненные после этого, будут помечаться как блоки Ignore
|
Расширение MemDumperValidator работает следующим образом: после установки подходящего класса (в языке C++) или типов данных (в языке С), DCR-библиотека будет вызывать MemDumperValidator всякий раз, когда нужно выполнить дамп блока памяти. Расширение просматривает значения данных в блоке и если находит подходящую дамп-функцию, то вызывает ее для выполнения дампа памяти. Аналогичным образом работает и та часть расширения, которая проверяет корректность данных в блоках памяти. Процесс проверки корректности отличается от процесса выдачи дампа только в том, что DCRT-библиотека вызывает не функции дампа, а функции проверки корректности данных соответствующего блока памяти.
Описать MemDumperValidator не так уж сложно, но вот заставить его работать — немного сложнее. В листинге 15.1 показан заголовочный файл MEMDUMPERVALIDATOR.H, который выполняет основную часть работ по инициализации. Включая в программу файла BUGSLAYERUTIL.H, вы автоматически включаете и MEMDUMPERVALIDATOR.H.
Листинг 15-1, JWEMDUMPERVAL1DATOR.H
/*- - - - - - - - - - - - - - - - - - - - - - - - - - - -
"Debugging Applications" (Microsoft Press)
Copyright (с) 1997-2000 John Robbins — All rights reserved.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий