Функции-ловушки клиентского блока
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
![]() |
![]() |
![]() |
Только машинные коды |
![]() |
Pro, Premium и Ultimate |
![]() |
![]() |
![]() |
Только машинные коды |
![]() |
Если нужно проверить или вывести данные, хранящиеся в блоках типа _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