마이크로소프트 파운데이션 클래스 라이브러리는 쉽게 프로그램을 디버깅 하는 여러 진단 서비스를 제공 합니다. 이러한 진단 서비스 매크로 및 추적 프로그램의 메모리 할당을 런타임에 개체의 내용을 덤프 하 고 런타임에 디버깅 메시지를 인쇄할 수 있는 전역 함수를 포함 합니다. 매크로 및 진단 서비스에 대 한 전역 함수는 다음 범주로 그룹화 됩니다.:
이러한 매크로 함수와 MFC의 디버그 및 릴리스 버전에 CObject 에서 파생 된 모든 클래스에 사용할 수 있습니다. 그러나 DEBUG_NEW 및 확인 을 제외한 모든 릴리스 버전에서 아무것도 하지 않고。
디버그 라이브러리에서 모든 할당 된 메모리 블록 "가드 바이트." 시리즈와 사이 이러한 바이트는 잘못 된 메모리 쓰기에 의해 방해, 진단 루틴 문제를 보고할 수 있습니다. 줄을 포함 하는 경우
# define 새 DEBUG_NEW
구현 파일에 모든 호출을 새 파일 이름 및 줄 번호를 메모리 할당 장소를 했다 저장 합니다. CMemoryState::DumpAllObjectsSince 함수는 메모리 누수를 식별할 수 있도록이 여분의 정보를 표시 됩니다. 진단 출력에 대 한 자세한 내용은 CDumpContext 클래스를 또한를 참조 하십시오.
또한, C 런타임 라이브러리는 또한 일련의 진단 기능을 응용 프로그램을 디버깅 하는 데 사용할 수를 지원 합니다. 자세한 내용은 참조 디버깅 루틴 실행-타임 라이브러리 참조。
| 주장 | 메시지를 인쇄 하 고 지정 된 식이 FALSE 로 라이브러리의 디버그 버전에서 계산 하는 경우 프로그램을 중단。 |
| ASSERT_KINDOF | 개체 또는 지정된 된 클래스에서 파생 된 클래스의 지정된 된 클래스의 개체는 테스트。 |
| ASSERT_VALID | AssertValid 멤버 함수;를 호출 하 여 개체의 내부 유효성 테스트 CObject 에서 일반적으로 재정의。 |
| DEBUG_NEW | 메모리 누수를 찾을 수 있도록 디버그 모드에서 모든 개체 할당에 대 한 파일 이름 및 줄 번호。 |
| 추적 | 제공 하는 printf-같은 라이브러리의 디버그 버전에서 기능。 |
| TRACE0 | 인수 없이 걸립니다 하지만 추적 유사한 형식 문자열。 |
| TRACE1 | 단일 인수 걸립니다 하지만 추적 유사한 형식 문자열。 |
| TRACE2 | 추적 걸립니다 하지만 유사한 두 개의 인수 형식 문자열。 |
| TRACE3 | 추적 형식 문자열 인수 세 소요와 비슷하지만。 |
| 확인 | ASSERT 와 유사 하지만 디버그 버전으로 뿐만 아니라 라이브러리의 릴리스 버전에서 식을 계산합니다。 |
| afxDump | 디버거 출력 창 또는 디버그 터미널 CDumpContext 정보를 보내는 전역 변수。 |
| afxMemDF | 디버깅 메모리 할당자의 동작을 제어 하는 전역 변수。 |
| afxTraceEnabled | 사용 하거나 사용 하지 않으려면 TRACE 매크로 출력 전역 변수。 |
| afxTraceFlags | MFC의 기본 제공 보고 기능을 설정 하는 데 사용 하는 전역 변수。 |
| AfxCheckError | 테스트를 통과 하는 데 사용 하는 전역 변수 적절 한 오류를 throw 하는 SCODE 오류가 경우 및이 경우, 참조를。 |
| AfxCheckMemory | 현재 할당 된 메모리의 모든 무결성 확인。 |
| AfxDump | 디버거에서 호출 하는 경우 디버깅 하는 동안 개체의 상태를 덤프。 |
| AfxDumpStack | 현재 스택의 이미지를 생성 합니다. 이 함수는 항상 정적으로 링크。 |
| AfxEnableMemoryTracking | 메모리 추적 켜고 끄기 설정。 |
| AfxIsMemoryBlock | 메모리 블록이 제대로 할당 확인。 |
| AfxIsValidAddress | 메모리 주소 범위는 프로그램의 범위 내에서 확인。 |
| AfxIsValidString | 문자열에 대 한 포인터 올바른지 여부 결정。 |
| AfxSetAllocHook | 각 메모리 할당, 함수 호출 수。 |
| AfxDoForAllClasses | 모든 CObject에 대해 지정된 된 함수를 수행-파생 클래스에서 지 원하는 런타임 형식 검사。 |
| AfxDoForAllObjects | 모든 CObject에 대해 지정된 된 함수를 수행- 새 할당 된 개체를 파생。 |