Отладка приложений


Использование MemDumperValidator - часть 4


// Заголовок, используемый для инициализации функций дампа и проверки

// корректности Client-блока специфического подтипа

////////////////////////////////////////////////////////////

typedef struct tag_DVINFO

{

// Значение подтипа Client-блоков. Это значение должно быть 

// установлено с помощью определенного выше макроса. 

// CLIENT_BLOCK_VALUE. Чтобы выяснить, как расширение назначает 

// это число, см. функцию AddClientDV.

unsigned long dwValue ; 

// Указатель на функцию дампа 

PFNMEMDUMPER pfnDump

// Указатель на функцию проверки корректности 

PFNMEMVALIDATOR pfnValidate; 

} DVINFO, * LPDVINFO;

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ФУНКЦИЯ : AddClientDV 

ОБСУЖДЕНИЕ :

Добавляет в список функции дампа и проверки корректности

 Client-блока. Если поле dwValue в структуре DVINFO равно О, 

то назначается следующее значение из списка. Возвращаемое значение

 должно всегда пересылаться в функцию _malloc_dbg в качестве

 значения Client-блока.

Если значение подтипа устанавливается с помощью макроса

 CLIENT_BLOCK__VALUE, то его можно использовать в качестве значения,

 передаваемого в функцию _malloc_dbg.

Заметим, что соответствующей функции удаления не существует.

 Почему возникает риск введения ошибок в отладочный код? Проблема

 производительности отходит на задний план, когда речь заходит

 о поиске ошибок. 

ПАРАМЕТРЫ :

IpDVInfo — Указатель на структуру DVINFO

 ВОЗВРАЩАЕТ :

1 — функции дампа и проверки корректности клиентского блока были

успешно добавлены. 

0 — функции дампа и проверки корректности клиентского блока не могут

быть добавлены.

- - - - - - - - - - - - - - - - - - - -  - - - - - - - - */

int BUGSUTIL_DLLINTERFACE _stdcall AddClientDV (LPDVINFO IpDVInfo);

/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ФУНКЦИЯ : ValidateAllBlocks

 ОБСУЖДЕНИЕ :

Проверяет все распределения памяти за пределами локальной кучи.


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



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