Функции-ловушки клиентского блока
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
Только машинные коды |
|||
Standard |
Только машинные коды |
|||
Pro и Team |
Только машинные коды |
Обозначения:
Применяется |
|
Неприменимо |
|
Команда или команды скрытые по умолчанию. |
Если нужно проверить или вывести данные, хранящиеся в блоках типа _CLIENT_BLOCK, можно написать для этого специальную функцию. Эта функция должна иметь прототип наподобие следующего, определенного в CRTDBG.H:
void YourClientDump(void *, size_t)
Другими словами, функция-ловушка должна принимать указатель типа void на начало блока выделения и значение типа size_t, показывающее размер выделения, и возвращать тип void. Все остальное задается по желанию.
Один раз установленная с помощью_CrtSetDumpClient, функция-ловушка будет вызываться всякий раз при дампе блока _CLIENT_BLOCK. _CrtReportBlockType можно применять для получения сведений о типе или подтипе выводимых блоков.
Указатель на функцию, который передается _CrtSetDumpClient, имеет тип _CRT_DUMP_CLIENT, как определено в CRTDBG.H:
typedef void (__cdecl *_CRT_DUMP_CLIENT)
(void *, size_t);
См. также
Задачи
Образец crt_dbg2: отладочные функции-ловушки для среды выполнения C