leaks
malloc
으로 프로세스에게 할당한 가상 메모리 공간 중, 더 이상 지시(referenced)되지 않는 영역을 찾는 macOS 운영체제의 커맨드 라인 도구.leaks
사용법stdlib.h
의 system
함수와 atexit
함수를 사용하여, 프로그램이 종료되면 leaks
를 실행하도록 설정할 수 있습니다. 보다 자세한 사용법은 아래의 팔만코딩경을 참고!leaks
옵션: MallocStackLogging
준비물:
다음과 같은 간단한 프로그램이 있습니다.
// main.c
#include <string.h>
#include <stdio.h>
char *get_sentence(void)
{
char *string;
char sentence[] = "Omae wa mou shindeiru...";
string = malloc(sizeof(char) * 44);
strcpy(string, sentence);
return (string);
}
int main(void)
{
char *str_ptr;
str_ptr = get_sentence();
printf("%s\\n", str_ptr);
printf("NANI?!\\n");
printf("=====================\\n");
// 이런! free를 하지 않고 프로그램을 끝낸다.
return (0);
}
gcc
로 프로그램을 컴파일하고 실행하면, 별 다른 에러 없이 잘 작동하기에, 겉보기에는 별 다른 문제가 없는 것처럼 보입니다.
Omae wa mou shindeiru...
NANI?!
=====================