Поделиться через


Отчетные функции-ловушки

Отчетные функции-ловушки, установленные с помощью _CrtSetReportHook, вызываются каждый раз при создании отчета отладки _CrtDbgReport. Помимо всего прочего их можно использовать для фильтрации отчетов, которые позволяют отобрать выделения конкретного типа. Отчетная функция-ловушка должна иметь следующий прототип:

int YourReportHook(int nRptType, char *szMsg, int *retVal);

Указатель, передаваемый _CrtSetReportHook, имеет тип _CRT_REPORT_HOOK, как определено в CRTDBG.H:

typedef int (__cdecl *_CRT_REPORT_HOOK)(int, char *, int *);

Когда CRT вызывает функцию-ловушку, аргумент nRptType содержит категорию отчета (_CRT_WARN, _CRT_ERROR или _CRT_ASSERT), szMsg содержит указатель на полностью собранную строку отчетного сообщения, а retVal задает значение, определяющее поведение _CrtDbgReport, который может продолжить обычное выполнение после создания отчета или запустить отладчик. (Значение retVal, равное нулю, позволяет продолжить выполнение, а значение 1 запускает отладчик.)

Если ловушка полностью обрабатывает сообщение и дальнейшая выдача отчета не требуется, она возвращает значение TRUE. Если возвращается значение FALSE, _CrtDbgReport будет дальше выдавать отчетные сообщения в обычном режиме.

См. также

Другие ресурсы

Написание функций отладочных ловушек

crt_dbg2 Sample