_CrtDbgReport, _CrtDbgReportW
Создает отчет с сообщением отладки и отправляет отчет до 3 возможных назначения (отладочные версии).
int _CrtDbgReport(
int reportType,
const char *filename,
int linenumber,
const char *moduleName,
const char *format [,
argument] ...
);
int _CrtDbgReportW(
int reportType,
const wchar_t *filename,
int linenumber,
const wchar_t *moduleName,
const wchar_t *format [,
argument] ...
);
Параметры
reportType
Тип отчета: _CRT_WARN" _CRT_ERRORи_CRT_ASSERT.filename
Указатель на имя исходного файла, в котором произошел или assert и отчет NULL.linenumber
Номер линии в исходном файле, где проводился или assert и отчет NULL.moduleName
Указатель на имя модуля (.exe или .dll), где произошел assert и отчет.format
Строка формат-элемента управления указателя, используемая для создания сообщения пользователя.argument
Необязательные аргументы подстановки, используемые by format.
Возвращаемое значение
Для любых целей отчета _CrtDbgReport и _CrtDbgReportW return - 1, если происходит ошибка и 0, если ошибки не обнаружены.Однако если цель отчета окно сообщения отладки и щелкните пользователь Retry кнопка равен 1. этих функций.Если пользователь щелкнет Abort кнопка в окне сообщения отладки, эти функции немедленно прерывает работу и не возвращает значение.
_RPT, _RPTF отладка вызова макросов _CrtDbgReport для создания их отладка отчетов.Версия расширенных символов этих макросов, а также _ASSERT [E]" _RPTWn и _RPTFWnиспользование _CrtDbgReportW для создания их отладка отчетов.После _CrtDbgReport OR _CrtDbgReportW return 1 эти макросы запустите отладчик, при условии, что по требованию (JIT) отладка включена.
Заметки
_CrtDbgReport и _CrtDbgReportW может отправить отчет об отладке до 3 разных целей. файл отчета отладки, монитор отладки ( Visual Studio отладчик) или окно сообщения отладки.Функции конфигурации, 2 _CrtSetReportMode и _CrtSetReportFileиспользуется для указания назначения или назначении для каждого типа отчета.Эти функции позволяют назначение или назначения отчетов для каждого типа отчета отдельно для отслеживания.Например, можно указать, что значение a reportType_CRT_WARN отправьте только к монитору отладки, пока a reportType_CRT_ASSERT отправьте в окно сообщения отладки и определяемые пользователем файл отчета.
_CrtDbgReportW версия расширенных символов _CrtDbgReport.Все свои выходные параметры и строки в характерных чертах; в противном случае он аналогичен версии символов единый-байта.
_CrtDbgReport и _CrtDbgReportW создайте сообщение пользователя для отчета об отладке путем подстановки argument[nаргументы в] format строка, используя те же правила, определенные printf OR wprintf функции.Эти функции затем формируется отчет об отладке и указывают назначение или назначения на основании текущих условиях и в файле указанного для отчета reportType.Если отчет отправляется в окне сообщения отладки filename" lineNumberи moduleName включите в сведения, отображаемом в окне.
В следующей таблице перечислены доступные варианты для режима отчета или режимов и файла и результирующая расширения функциональности _CrtDbgReport и _CrtDbgReportW.Эти параметры указываются как битов пометит в Crtdbg.h.
Режим отчета |
Файл отчета |
_CrtDbgReport" _CrtDbgReportW реакция на событие |
---|---|---|
_CRTDBG_MODE_DEBUG |
Неприменимо |
Записывает сообщение к окнам OutputDebugString API. |
_CRTDBG_MODE_WNDW |
Неприменимо |
Окна вызовов MessageBox API для создания окна сообщений для отображения сообщений, а также Abort" Retryи Ignore кнопки.Если пользователь щелкнет Abort" _CrtDbgReport OR _CrtDbgReport немедленно прерывается.Если пользователь щелкнет Retryвозвращается значение 1.Если пользователь щелкнет Ignoreвыполнение продолжается и _CrtDbgReport и _CrtDbgReportW return 0.Обратите внимание, что щелкнуть Ignore если условие ошибки, существует часто результаты в "неопределили расширения функциональности". |
_CRTDBG_MODE_FILE |
__HFILE |
Записывает сообщение в пользователь-поставлено HANDLEиспользование окна WriteFile API и не проверяет допустимость дескриптора файла; приложение отвечает за открытие файла отчета и передаче допустимый дескриптор файла. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDERR |
Записывает сообщение в stderr. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDOUT |
Записывает сообщение в stdout. |
Отчет можно отправлять только одна, 2 или 3 назначения или в назначении. нетДополнительные сведения об указании режима отчета или режимы и файл отчета см. в разделе _CrtSetReportMode и _CrtSetReportFile функции.Дополнительные сведения об использовании макросов отладке и функции создания отчетов, см. в разделе С помощью макросов для проверки и отчетности.
Если приложение требует большей гибкости, чем предоставленный by _CrtDbgReport и _CrtDbgReportWможно написать собственные функции и обработчик отчетов в механизм отчетов с помощью библиотеки времени выполнения c _CrtSetReportHook функция.
Требования
Процедура |
Обязательный заголовок |
---|---|
_CrtDbgReport |
<crtdbg.h> |
_CrtDbgReportW |
<crtdbg.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Библиотеки
Отладочные версии Библиотеки времени выполнения C только для чтения.
Пример
// crt_crtdbgreport.c
#include <crtdbg.h>
int main() {
#ifdef _DEBUG
CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
#endif
}
См. crt_dbg2 пример функции изменение отчета.