루틴을 디버깅 합니다.
디버그 버전의 C 런타임 라이브러리의 디버깅 프로그램을 쉽게 하 고 개발자에 게 수 많은 진단 서비스를 제공 합니다.
디버깅 하는 동안 런타임 함수에 직접 단계
어설션, 오류 및 예외를 해결 합니다.
힙 할당 한 메모리 누수를 방지 합니다.
사용자에 게 보고서 디버그 메시지
이러한 루틴을 사용 하 여 _DEBUG 플래그를 정의 해야 합니다.이러한 루틴의 모든 응용 프로그램의 일반 정품 빌드에 아무 것도 하지 마십시오.새 디버그 루틴을 사용 하는 방법에 대 한 자세한 내용은 참조 하십시오. CRT 디버깅 기술.
디버그 버전의 C 런타임 라이브러리 루틴
루틴 |
사용할 도구 |
.NET Framework에 있는 해당 |
---|---|---|
식을 평가 하 고 결과가 FALSE 일 경우 디버그 보고서를 생성 합니다. |
||
마찬가지로 _ASSERT, 하지만 오류가 발생 한 식을 생성 된 보고서에 포함 됩니다. |
||
디버그 힙에 할당 된 메모리 블록의 무결성을 확인 합니다. |
||
중단점을 설정합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
사용자가 메시지와 함께 디버그 보고서를 생성 하 고 보고서를 세 가지 가능한 대상에 보낼 |
System::Diagnostics::Debug::Write, System::Diagnostics::Debug::Writeline, System::Diagnostics::Debug::WriteIf, System::Diagnostics::Debug::WriteLineIf |
|
응용 프로그램에서 제공 하는 함수에 대 한 모든 호출 _CLIENT_BLOCK 힙의 형식 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
중요 한 메모리 누수가 발생 한 경우 모든 디버그 힙의 메모리 블록을 덤프 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
지정 된 메모리 블록이 로컬 힙에 위치한 그리고 올바른 디버그 힙의 블록 형식 식별자 확인 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
지정 된 포인터를 로컬 힙 인지 확인 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
지정한 메모리 범위가 읽기와 쓰기에 대해 유효한 지 확인 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
디버그 힙의 현재 상태를 얻고 있는 응용 프로그램 제공을 저장 _CrtMemState 구조 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
중요 한 차이점에 대 한 두 가지 메모리 상태를 비교 하 고 결과 반환 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
프로그램 실행을 시작할 또는 지정 된 검사점이 정해진 이후 힙 개체에 대 한 정보를 덤프 합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
지정 된 메모리 상태는 사용자가 읽을 수 있는 형식에 대 한 디버그 헤더 정보를 덤프 |
||
에 지정 된 디버그 힙 블록 포인터와 연관 된 블록 형식/하위 반환 합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
C 런타임 디버그 메모리 할당 프로세스에 연결 하 여 클라이언트 정의 할당 함수를 설치 합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
지정 된 개체 할당 순서 번호에 중단점 설정 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
검색 하거나 상태를 수정할 수 있는 _crtDbgFlag 의 디버그 힙 관리자 할당 동작을 제어 하는 플래그 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
덤프 하는 디버그 덤프 함수 호출 될 때마다 호출 되는 응용 프로그램 정의 함수를 설치 _CLIENT_BLOCK 메모리 블록을 입력 합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
파일 또는 스트림을 대상으로 보고서를 특정 형식으로 사용할 식별_CrtDbgReport |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
C 런타임 디버그 보고 프로세스에 연결 하 여 클라이언트 정의 보고 함수를 설치 합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
설치 또는 C 런타임 디버그 보고 프로세스에 연결 하 여 클라이언트 정의 보고 함수를 제거 합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
생성 보고서를 특정 형식에 대해 일반 대상 데이터베이스를 지정 합니다._CrtDbgReport |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
호출 하 여 디버그 보고서를 생성 하 여 응용 프로그램의 진행률을 추적 합니다. _CrtDbgReport 형식 문자열 및 가변 개수의 인수입니다.없습니다. 소스 파일 및 줄 번호 정보를 제공합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
비슷한는 _RPTn 매크로 보고서 요청을 보낸 소스 파일 이름과 줄 번호를 제공 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
디버깅 헤더를 지정 된 수에 추가 공간이 있는 힙 메모리 블록을 할당 하 고 버퍼를 덮어쓸 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
지정 된 힙의 메모리 블록 확장 하거나 블록을 축소 하 여 크기 조정 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
힙의 메모리 블록을 해제 합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
지정 된 상대 경로 절대 경로나 전체 경로 이름을 만들 이름를 사용 하 여 _malloc_dbg 메모리를 할당할 수 있습니다. |
||
현재 작업 디렉터리를 얻을 사용 하 여 _malloc_dbg 메모리를 할당할 수 있습니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
디버깅 헤더에 대 한 추가 공간이 있는 힙 메모리 블록을 할당 하 고 버퍼 덮어쓰기 |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
힙의 메모리 블록의 크기를 계산 합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
지정 된 힙의 메모리 블록을 이동 하거나 블록의 크기를 조정 하 여 다시 할당 합니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
|
중복 문자열을 사용 하 여 _malloc_dbg 메모리를 할당할 수 있습니다. |
||
사용할 수 있는 임시 파일을 만드는 데 사용 하는 이름을 생성 _malloc_dbg 메모리를 할당할 수 있습니다. |
해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제. |
디버그 루틴을 사용할 수 있습니다 대부분의 기타 C 런타임 루틴 디버깅 하는 동안 소스 코드를 실행 합니다.그러나 Microsoft 독점 수 있는 몇 가지 기술을 고려 및, 따라서, 이러한 루틴에 대 한 소스 코드를 제공 하지 않습니다.대부분 이러한 루틴은 예외 처리 또는 부동 소수점 처리 그룹에 속해 있지만 몇 가지 다른 사용자도 포함 됩니다.다음 표에 이러한 루틴을 보여 줍니다.
소스 코드 형식으로 사용할 수 있는 c 런타임 루틴
printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l* |
||
scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l* |
||
|
* 소스 코드에 있는 대부분의이 루틴을 사용할 수 있지만, 소스 코드 제공 되지 않는 다른 루틴에서는 내부 호출을 만듭니다.
일부 C 런타임 함수 및 C++ 연산자 호출 하는 응용 프로그램의 디버그 빌드를 때 다르게 동작 합니다.(어느 정의 하 여 응용 프로그램의 디버그 빌드를 실행할 수 있습니다 메모를 _DEBUG 플래그를 지정 하거나를 C 런타임 라이브러리의 디버그 버전과 링크입니다.) 동작 차이가 일반적으로 추가 기능 또는 디버깅 프로세스를 지원 하도록 해당 루틴에 의해 제공 된 정보로 구성 됩니다.다음 표에 이러한 루틴을 보여 줍니다.
디버그에서 다르게 동작 하는 루틴의 응용 프로그램 빌드
C 중단 루틴 |
C + + 를 삭제 연산자 |
C 어설션 루틴 |
C + + 새 연산자 |
앞의 표에 디버그 버전의 C++ 연산자를 사용 하는 방법에 대 한 자세한 내용은 참조 하십시오. C++에서 디버그 힙 사용.