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


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

Обновлен: Ноябрь 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

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

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