_CrtDbgReport, _CrtDbgReportW
보고서 디버깅 메시지를 생성 하 고 세 가지 가능한 대상 (디버그 버전에만 해당) 보고서를 보냅니다.
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
Report type: _CRT_WARN, _CRT_ERROR, and _CRT_ASSERT.filename
가정/보고서 발생 하는 소스 파일의 이름에 대 한 포인터 또는 NULL.linenumber
가정/보고서를 발생 하는 소스 파일에서 여러 줄 또는 NULL.moduleName
가정/보고서를 발생 모듈 (.exe 또는.dll)의 이름 포인터입니다.format
사용자가 메시지를 작성 하는 데 사용 하는 컨트롤 서식 문자열을 포인터입니다.argument
대체 옵션 인수를 사용 하는 format.
반환 값
모든 보고서 대상에 대 한 _CrtDbgReport 및 _CrtDbgReportW 오류가 발생 하는 경우 오류가 발생 하면 – 1과 0을 반환 합니다.그러나 보고서 대상 디버그 메시지 창 및 사용자가 되 면을 클릭의 Retry 단추를 이러한 함수 1을 반환 합니다.사용자가 클릭 하는 경우는 Abort 단추 메시지 디버그 창에서이 함수 즉시 중단 하 고 값을 반환 하지 않습니다.
_RPT, _RPTF 매크로 호출을 디버깅 _CrtDbgReport 의 디버그를 생성할 보고서입니다.이러한 매크로의 와이드 문자 버전을 같은 _ASSERT 스, _RPTWn 및 _RPTFWn, 사용 _CrtDbgReportW 의 디버그를 생성할 보고서입니다.때 _CrtDbgReport 또는 _CrtDbgReportW 1, 반환에서 just-in-time (JIT) 디버깅을 사용 하도록 설정 하는 경우에이 매크로 디버거를 시작 합니다.
설명
_CrtDbgReport및 _CrtDbgReportW 디버그 보고서를 세 가지 서로 다른 대상에 보낼 수 있습니다: 디버그 보고서 파일을 디버그 모니터 (는 Visual Studio 디버거에서), 또는 디버그 메시지 창입니다.두 가지 구성 기능 _CrtSetReportMode 및 _CrtSetReportFile, 대상 또는 각 보고서 유형에 대 한 대상을 지정 하는 데 사용 됩니다.이러한 함수는 보고 대상 또는 대상 보고서 형식별로 별도로 제어할 수 있습니다.예를 들어, 되도록 지정할 수 있습니다는 reportType 의 _CRT_WARN 만 수 디버그 모니터를 전송 하는 동안에 reportType 의 _CRT_ASSERT 디버그 메시지 창 및 사용자 지정 보고서 파일에 보낼 수.
_CrtDbgReportW와이드 문자 버전입니다 _CrtDbgReport.모든 출력 및 문자열 매개 변수에서 와이드 문자 문자열입니다. 그렇지 않으면이 싱글바이트 문자 버전으로 동일합니다.
_CrtDbgReport및 _CrtDbgReportW 대체 하 여 사용자 메시지 디버그 보고서를 만들는 argumentn에 인수는format 정의 된 동일한 규칙을 사용 하 여 문자열을 printf 또는 wprintf 함수.이러한 함수는 다음 디버그 보고서를 생성 하 고 대상 또는 대상에 따라 현재 보고서 모드에서 확인 및 정의 파일에 대 한 reportType.디버그 메시지 창에는 보고서를 보낼 때의 filename, lineNumber, 및 moduleName 창에 표시 되는 정보에 포함 되어 있습니다.
다음 표에서 사용할 수 있는 항목 보고서 모드 또는 모드, 파일 및 결과 동작의 _CrtDbgReport 및 _CrtDbgReportW.이러한 옵션은 비트 플래그로 crtdbg.h에 정의 됩니다.
보고서 모드 |
보고서 파일 |
_CrtDbgReport_CrtDbgReportW 동작 |
---|---|---|
_CRTDBG_MODE_DEBUG |
해당 없음 |
Windows 쓰기 메시지 내부적 API입니다. |
_CRTDBG_MODE_WNDW |
해당 없음 |
Windows를 호출 MessageBox API와 함께 메시지를 표시 하는 메시지 상자를 만들려면 Abort, Retry, 및 Ignore 단추.사용자가 클릭 하는 경우 Abort, _CrtDbgReport 또는 _CrtDbgReport 즉시 중단 됩니다.사용자가 클릭 하는 경우 Retry, 1을 반환 합니다.클릭할 경우 Ignore, 계속 실행 및 _CrtDbgReport 및 _CrtDbgReportW 0을 반환 합니다.참고 Ignore 때 "정의 되지 않은 동작이" 가끔 있는 오류 조건 |
_CRTDBG_MODE_FILE |
__HFILE |
쓰기 메시지에 사용자가 제공한 HANDLE, Windows를 사용 하 여 WriteFile API 파일 핸들;의 유효성을 확인 하지 않습니다 응용 프로그램 보고서 파일을 열고 잘못 된 파일 핸들을 전달에 대 한 책임이 있습니다. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDERR |
쓰기 메시지를 stderr. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDOUT |
쓰기 메시지를 stdout. |
보고서를 하나, 둘 또는 세 개의 대상 또는 대상 없음 전혀 보낼 수 있습니다.보고서 모드 또는 모드 및 보고서 파일을 지정 하는 방법에 대 한 자세한 내용은 참조 하십시오 있는 _CrtSetReportMode 및 _CrtSetReportFile 함수.Debug 매크로 사용 하 여 및 보고 기능에 대 한 자세한 내용은 참조 하십시오. 매크로 사용 하 여 확인 및 보고에 대 한.
응용 프로그램에서 제공 하 여 보다 융통성 있게 해야 하는 경우 _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 보고서 함수를 변경 하는 방법의 예입니다.