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


_CrtSetReportMode

Указывает назначение или назначение для определенного типа отчета, созданного _CrtDbgReport и любыми макросами, вызывающими _CrtDbgReport, _CrtDbgReportWнапример _ASSERT_EXPR _ASSERTE_ASSERT, макросами и _RPT, _RPTW_RPTF_RPTFW макросами (только для отладки).

Синтаксис

int _CrtSetReportMode(
   int reportType,
   int reportMode
);

Параметры

reportType
Тип отчета: _CRT_WARN, _CRT_ERROR и _CRT_ASSERT.

reportMode
Новый режим или режимы отчетов для reportType.

Возвращаемое значение

При успешном завершении функция _CrtSetReportMode возвращает предыдущий режим или режимы отчетов для типа отчета, указанного в параметре reportType. Если недопустимое значение передается в качестве reportType или недопустимом режиме, reportMode_CrtSetReportMode вызывает обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эта функции задает для errno значение EINVAL и возвращает -1. Дополнительные сведения см. в разделе errno, _doserrno, _sys_errlist, и _sys_nerr.

Замечания

Функция _CrtSetReportMode определяет место назначения вывода для функции _CrtDbgReport. Поскольку макросы _ASSERT, _ASSERTE, _RPT и _RPTF вызывают функцию _CrtDbgReport, функция _CrtSetReportMode определяет место назначения вывода текста, определенного этими макросами.

Если _DEBUG это не определено, вызовы _CrtSetReportMode удаляются во время предварительной обработки.

Если вы не вызываете _CrtSetReportMode определение назначения выходных данных сообщений, то в силу применяются следующие значения по умолчанию:

  • Ошибки и сбои проверочного утверждения направляются в окно сообщений отладчика.

  • Предупреждения из Windows-приложений направляются в окно вывода отладчика.

  • Предупреждения от консольных приложений не отображаются.

В следующей таблице перечислены типы отчетов, определенные в Crtdbg.h.

Тип отчета Description
_CRT_WARN Предупреждения, сообщения и сведения, которые не требуют немедленного внимания.
_CRT_ERROR Ошибки, неустранимые проблемы и ситуации, которые требуют немедленного внимания.
_CRT_ASSERT Сбои проверочного утверждения (выражения, вычисление которых дает значение FALSE).

Функция _CrtSetReportMode присваивает новый режим отчета, указанный в параметре reportMode, типу отчета, указанному в параметре reportType, и возвращает ранее определенный режим отчета для reportType. В следующей таблице приведен список доступных вариантов для параметра reportMode и соответствующее поведение функции _CrtDbgReport. Эти параметры задаются в виде битовых флагов в файле Crtdbg.h.

Режим отчета Поведение функции _CrtDbgReport
_CRTDBG_MODE_DEBUG Выводит сообщение в окно вывода отладчика.
_CRTDBG_MODE_FILE Выводит сообщение в предоставленный пользователем дескриптор файла. _CrtSetReportFile необходимо вызвать, чтобы определить конкретный файл или поток, используемый в качестве назначения.
_CRTDBG_MODE_WNDW Создает окно сообщения для отображения сообщения вместе с кнопками "Прерывание", "Повтор" и "Игнорировать ".
_CRTDBG_REPORT_MODE Возвращает reportMode для заданного reportType:

1 _CRTDBG_MODE_FILE

2 — .

4 — .

Каждый тип отчета может создаваться с использованием одного, двух или трех режимов или вообще без режима. Таким образом, можно определить несколько назначений для одного типа отчета. Например, в следующем фрагменте кода сообщения о сбоях проверочного утверждения отправляются как в окно сообщений отладчика, так и в поток stderr:

_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );

Кроме того, можно управлять режимом отчетов или режимами для каждого типа отчета отдельно. Например, можно указать, что объект reportType _CRT_WARN переходит в выходную строку отладки, в то время как _CRT_ASSERT отображается с помощью окна сообщения отладки и отправляется stderrв , как показано ранее.

Требования

Маршрут Обязательный заголовок Необязательный заголовок
_CrtSetReportMode <crtdbg.h> <errno.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Библиотеки: отладка версий только библиотек среды выполнения C.

См. также

Отладка подпрограмм