Visual Studio에서 CRT 라이브러리를 사용해 메모리 누수 탐지하는 방법
1. 소스 상단에 아래 지시문을 포함한다.
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
2. 종료지점 직전에 아래 코드를 추가한다.
_CrtDumpMemoryLeaks();
3. F5를 눌러 디버그 모드로 실행 후 종료한다.
테스트를 위해 어떤 함수안의 free를 주석처리하고 디버그 모드로 실행한 뒤 그 함수를 호출하고 종료해보았다.
아래와 같이 메모리 누수가 감지되었다고 뜬다.
나는 테스트해본거라 어느위치에서 누수가 된건지 알고있지만 모르겠다면
4. 메인함수 안쪽 상단에 아래 코드를 넣고 매개변수로는 위에서 본 번호인 111을 넣은 뒤 디버그 모드로 다시 실행한다.
_CrtSetBreakAlloc();
그럼 메모리 누수가 발생한 지점에서 멈춘다.
아래 더 자세한 설명이 나와있다.
'프로그래밍 > C' 카테고리의 다른 글
C, Linux ] main 함수의 매개변수 사용해서 파일 입출력 하기 (0) | 2022.08.17 |
---|---|
C ] 가변인자 함수 만들기, 가변인자 출력함수 만들기 (0) | 2022.08.12 |
[ C언어 ] realloc은 얼마나 자주 메모리 주소를 옮길까? (0) | 2022.05.02 |
[ C언어 ] scanf의 리턴값 (0) | 2022.04.27 |
[ C언어 ] scanf 공백 ( 띄어쓰기 ) 포함 원하는 길이 만큼만 문자열 입력 받는 방법. (0) | 2022.04.27 |