본문 바로가기
C

(Mac OS) leaks 명령어를 이용하여 메모리 누수 검사하기

by Sondho 2021. 1. 22.

메모리 누수(memory leak)이란? 

 

1. main.c를 생성 후, 아래의 내용 입력.

int main(void)
{
    function();
    while(1)
    {
    }
    return (0);
}

 

2. 컴파일 하기

$ gcc main.c ... (필요한 파일.c)

 

3. 실행파일 a.out 실행하기.

  • & 명령어를 통해 a.out이 실행되는 동시에 다른 작업을 수행 할 수 있게 해줌.  참고
$ ./a.out &

 

4. leak 명령어 실행

leaks a.out

 

5. leak의 여부 체크하고 계속 실행 중인 a.out 종료시키기

ps | grep -v grep | grep a.out
kill -9 [PID]

system 함수를 이용한 방법

system() 함수란?

- 처리를 위해 지정된 string을 CL 명령 프로세서로 전달하는 함수 (참고)

int main(void)
{
    function();
    system("leaks a.out");
    return (0);
}

 

gcc main.c -o a.out

./a.out

 

gcc 후 실행 파일을 실행 시키면 function()함수가 끝난 뒤, system 명령어를 통해 shell에 아래 명령어가 입력되어 leak 검사를 하게 된다.

leaks a.out

'C' 카테고리의 다른 글

scanf를 이용한 다양한 출력 방법 (scan set, edit set)  (0) 2021.02.26
man strcpy (파파고 번역)  (0) 2020.11.26

댓글