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


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

Этот раздел применим к:

Выпуск

Visual Basic

C#

F#

C++

Web Developer

Express

Тема не применяется Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Pro, Premium и Ultimate

Тема не применяется Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Отчетные функции-ловушки, установленные с помощью _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: отладочные функции-ловушки для среды выполнения C

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

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