다음을 통해 공유


루틴을 디버깅 합니다.

디버그 버전의 C 런타임 라이브러리의 디버깅 프로그램을 쉽게 하 고 개발자에 게 수 많은 진단 서비스를 제공 합니다.

  • 디버깅 하는 동안 런타임 함수에 직접 단계

  • 어설션, 오류 및 예외를 해결 합니다.

  • 힙 할당 한 메모리 누수를 방지 합니다.

  • 사용자에 게 보고서 디버그 메시지

이러한 루틴을 사용 하 여 _DEBUG 플래그를 정의 해야 합니다.이러한 루틴의 모든 응용 프로그램의 일반 정품 빌드에 아무 것도 하지 마십시오.새 디버그 루틴을 사용 하는 방법에 대 한 자세한 내용은 참조 하십시오. CRT 디버깅 기술.

디버그 버전의 C 런타임 라이브러리 루틴

루틴

사용할 도구

.NET Framework에 있는 해당

_ASSERT

식을 평가 하 고 결과가 FALSE 일 경우 디버그 보고서를 생성 합니다.

System::Diagnostics::Debug:: 어설션

_ASSERTE

마찬가지로 _ASSERT, 하지만 오류가 발생 한 식을 생성 된 보고서에 포함 됩니다.

System::Diagnostics::Debug:: 어설션

_CrtCheckMemory

디버그 힙에 할당 된 메모리 블록의 무결성을 확인 합니다.

System::Diagnostics::PerformanceCounter

_CrtDbgBreak

중단점을 설정합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtDbgReport, _CrtDbgReportW

사용자가 메시지와 함께 디버그 보고서를 생성 하 고 보고서를 세 가지 가능한 대상에 보낼

System::Diagnostics::Debug::Write, System::Diagnostics::Debug::Writeline, System::Diagnostics::Debug::WriteIf, System::Diagnostics::Debug::WriteLineIf

_CrtDoForAllClientObjects

응용 프로그램에서 제공 하는 함수에 대 한 모든 호출 _CLIENT_BLOCK 힙의 형식

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtDumpMemoryLeaks

중요 한 메모리 누수가 발생 한 경우 모든 디버그 힙의 메모리 블록을 덤프

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtIsMemoryBlock

지정 된 메모리 블록이 로컬 힙에 위치한 그리고 올바른 디버그 힙의 블록 형식 식별자 확인

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtIsValidHeapPointer

지정 된 포인터를 로컬 힙 인지 확인

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtIsValidPointer

지정한 메모리 범위가 읽기와 쓰기에 대해 유효한 지 확인

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtMemCheckpoint

디버그 힙의 현재 상태를 얻고 있는 응용 프로그램 제공을 저장 _CrtMemState 구조

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtMemDifference

중요 한 차이점에 대 한 두 가지 메모리 상태를 비교 하 고 결과 반환

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtMemDumpAllObjectsSince

프로그램 실행을 시작할 또는 지정 된 검사점이 정해진 이후 힙 개체에 대 한 정보를 덤프 합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtMemDumpStatistics

지정 된 메모리 상태는 사용자가 읽을 수 있는 형식에 대 한 디버그 헤더 정보를 덤프

System::Diagnostics::PerformanceCounter

_CrtReportBlockType

에 지정 된 디버그 힙 블록 포인터와 연관 된 블록 형식/하위 반환 합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

있음을

C 런타임 디버그 메모리 할당 프로세스에 연결 하 여 클라이언트 정의 할당 함수를 설치 합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtSetBreakAlloc

지정 된 개체 할당 순서 번호에 중단점 설정

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtSetDbgFlag

검색 하거나 상태를 수정할 수 있는 _crtDbgFlag 의 디버그 힙 관리자 할당 동작을 제어 하는 플래그

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtSetDumpClient

덤프 하는 디버그 덤프 함수 호출 될 때마다 호출 되는 응용 프로그램 정의 함수를 설치 _CLIENT_BLOCK 메모리 블록을 입력 합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtSetReportFile

파일 또는 스트림을 대상으로 보고서를 특정 형식으로 사용할 식별_CrtDbgReport

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtSetReportHook

C 런타임 디버그 보고 프로세스에 연결 하 여 클라이언트 정의 보고 함수를 설치 합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtSetReportHook2, _CrtSetReportHookW2

설치 또는 C 런타임 디버그 보고 프로세스에 연결 하 여 클라이언트 정의 보고 함수를 제거 합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_CrtSetReportMode

생성 보고서를 특정 형식에 대해 일반 대상 데이터베이스를 지정 합니다._CrtDbgReport

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_RPT [0,1,2,3,4]

호출 하 여 디버그 보고서를 생성 하 여 응용 프로그램의 진행률을 추적 합니다. _CrtDbgReport 형식 문자열 및 가변 개수의 인수입니다.없습니다. 소스 파일 및 줄 번호 정보를 제공합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_RPTF [0,1,2,3,4]

비슷한는 _RPTn 매크로 보고서 요청을 보낸 소스 파일 이름과 줄 번호를 제공

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_calloc_dbg

디버깅 헤더를 지정 된 수에 추가 공간이 있는 힙 메모리 블록을 할당 하 고 버퍼를 덮어쓸

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_expand_dbg

지정 된 힙의 메모리 블록 확장 하거나 블록을 축소 하 여 크기 조정

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_free_dbg

힙의 메모리 블록을 해제 합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_fullpath_dbg, _wfullpath_dbg

지정 된 상대 경로 절대 경로나 전체 경로 이름을 만들 이름를 사용 하 여 _malloc_dbg 메모리를 할당할 수 있습니다.

System::IO::File:: 만들기

_getcwd_dbg, _wgetcwd_dbg

현재 작업 디렉터리를 얻을 사용 하 여 _malloc_dbg 메모리를 할당할 수 있습니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_malloc_dbg

디버깅 헤더에 대 한 추가 공간이 있는 힙 메모리 블록을 할당 하 고 버퍼 덮어쓰기

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_msize_dbg

힙의 메모리 블록의 크기를 계산 합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_realloc_dbg

지정 된 힙의 메모리 블록을 이동 하거나 블록의 크기를 조정 하 여 다시 할당 합니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

_strdup_dbg, _wcsdup_dbg

중복 문자열을 사용 하 여 _malloc_dbg 메모리를 할당할 수 있습니다.

System::String::Clone

_tempnam_dbg, _wtempnam_dbg

사용할 수 있는 임시 파일을 만드는 데 사용 하는 이름을 생성 _malloc_dbg 메모리를 할당할 수 있습니다.

해당 사항 없음.표준 C 함수를 호출할 수 있습니다 PInvoke.자세한 내용은 플랫폼 호출 예제.

디버그 루틴을 사용할 수 있습니다 대부분의 기타 C 런타임 루틴 디버깅 하는 동안 소스 코드를 실행 합니다.그러나 Microsoft 독점 수 있는 몇 가지 기술을 고려 및, 따라서, 이러한 루틴에 대 한 소스 코드를 제공 하지 않습니다.대부분 이러한 루틴은 예외 처리 또는 부동 소수점 처리 그룹에 속해 있지만 몇 가지 다른 사용자도 포함 됩니다.다음 표에 이러한 루틴을 보여 줍니다.

소스 코드 형식으로 사용할 수 있는 c 런타임 루틴

acos, acosf

_fpclass

_nextafter

asin

_fpieee_flt

pow

atan, atan2

_fpreset

printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l*

_cabs

frexp

_scalb

ceil

_hypot

scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l*

_chgsign, _chgsignl

_isnan

setjmp

_clear87, _clearfp

_j0

sin

_control87, _controlfp, __control87_2

_j1

sinh

_copysign, _copysignl

_jn

sqrt

cos

ldexp

_status87, _statusfp

cosh

log

tan

Exp

log10

tanh

fabs

_logb

_y0

_ 유한

longjmp

_y1

floor

_matherr

_yn

fmod

modf

 

* 소스 코드에 있는 대부분의이 루틴을 사용할 수 있지만, 소스 코드 제공 되지 않는 다른 루틴에서는 내부 호출을 만듭니다.

일부 C 런타임 함수 및 C++ 연산자 호출 하는 응용 프로그램의 디버그 빌드를 때 다르게 동작 합니다.(어느 정의 하 여 응용 프로그램의 디버그 빌드를 실행할 수 있습니다 메모를 _DEBUG 플래그를 지정 하거나를 C 런타임 라이브러리의 디버그 버전과 링크입니다.) 동작 차이가 일반적으로 추가 기능 또는 디버깅 프로세스를 지원 하도록 해당 루틴에 의해 제공 된 정보로 구성 됩니다.다음 표에 이러한 루틴을 보여 줍니다.

디버그에서 다르게 동작 하는 루틴의 응용 프로그램 빌드

C 중단 루틴

C + + 를 삭제 연산자

C 어설션 루틴

C + + 연산자

앞의 표에 디버그 버전의 C++ 연산자를 사용 하는 방법에 대 한 자세한 내용은 참조 하십시오. C++에서 디버그 힙 사용.

참고 항목

참조

범주별 런타임 루틴

런타임 오류 검사