#include <stdio.h>
#include <stdlib.h>
int main()
{
char *str = (char*) malloc(1024);
printf("flsdkjfslkjfsdklfj\n\n\n");
printf("\n\n");
return 0;
}
이렇게 만들고 컴파일( -g 옵션을 넣어야 파일과 라인을 알수 있다. 그리고 -o옵션보다 먼저 써줘야 한다.)하자.
gcc -g -o test test.c
valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./test
valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --log-file="./valgrind_log" ./test
아래와 같이 메로리 Leak을 확인할수 있다.
==3402== HEAP SUMMARY:
==3402== in use at exit: 1,024 bytes in 1 blocks
==3402== total heap usage: 1 allocs, 0 frees, 1,024 bytes allocated
==3402==
==3402== 1,024 bytes in 1 blocks are definitely lost in loss record 1 of 1
==3402== at 0x4C274A8: malloc (vg_replace_malloc.c:236)
==3402== by 0x400575: main (test.c:5)
==3402==
==3402== LEAK SUMMARY:
==3402== definitely lost: 1,024 bytes in 1 blocks
==3402== indirectly lost: 0 bytes in 0 blocks
==3402== possibly lost: 0 bytes in 0 blocks
==3402== still reachable: 0 bytes in 0 blocks
==3402== suppressed: 0 bytes in 0 blocks
Home-Page : http://valgrind.org/
Manual : http://valgrind.org/docs/manual/manual.html
Download : http://valgrind.org/docs/download_docs.html
Manual : http://valgrind.org/docs/manual/manual.html
Download : http://valgrind.org/docs/download_docs.html
1. Valgrind 설치
wget http://www.valgrind.org/downloads/valgrind-3.3.0.tar.bz2
tar xvfj valgrind-3.3.0.tar.bz2
cd valgrind-3.3.0
./configure
make
make install
또는 sudo apt-get install valgrind
2. Valgrind 테스트
valgrind --leak-check=yes main
3. 간단 실행법
valgrind --tool=memcheck --leak-check=full [프로그램] [실행인자들...]
wget http://www.valgrind.org/downloads/valgrind-3.3.0.tar.bz2
tar xvfj valgrind-3.3.0.tar.bz2
cd valgrind-3.3.0
./configure
make
make install
또는 sudo apt-get install valgrind
2. Valgrind 테스트
valgrind --leak-check=yes main
3. 간단 실행법
valgrind --tool=memcheck --leak-check=full [프로그램] [실행인자들...]