Отчетные функции-ловушки
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
Только машинный код |
|||
Standard |
Только машинный код |
|||
Pro и Team |
Только машинный код |
Обозначения:
Применяется |
|
Неприменимо |
|
Команда или команды скрытый по умолчанию. |
Отчетные функции-ловушки, установленные с помощью _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