valgrind 메모리 릭 체크
test.c
#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
하면
==17708==
==17708== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 11 from 1)
==17708== malloc/free: in use at exit: 1,024 bytes in 1 blocks.
==17708== malloc/free: 1 allocs, 0 frees, 1,024 bytes allocated.
==17708== For counts of detected errors, rerun with: -v
==17708== searching for pointers to 1 not-freed blocks.
==17708== checked 59,020 bytes.
==17708==
==17708== 1,024 bytes in 1 blocks are definitely lost in loss record 1 of 1
==17708== at 0x4021620: malloc (vg_replace_malloc.c:149)
==17708== by 0x80483D0: main (test.c:6)
==17708==
==17708== LEAK SUMMARY:
==17708== definitely lost: 1,024 bytes in 1 blocks.
==17708== possibly lost: 0 bytes in 0 blocks.
==17708== still reachable: 0 bytes in 0 blocks.
==17708== suppressed: 0 bytes in 0 blocks.
이렇게 출력된다.
출력내용중(빨간색부분) test.c:6 를 보면 파일명과 라인을 알 수 있고
definitely lost: 1,024 bytes in 1 blocks. 를 보면 1의 블럭에서 1024 byte를 잃었다는 것을 알 수 있다.
valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --log-file="./valgrind_log" ./test
를 하면 로그 파일로 볼수 있다.
Home : http://valgrind.org/
사용법 : http://valgrind.org/docs/manual/manual.html
파일로 다운로드 : http://valgrind.org/docs/download_docs.html
[출처] valgrind 메모리 릭 체크 - valgrind 아주 유용하다. 메뉴얼도 언젠가 꼭 봐보자..(영어 ㄷㄷㄷ;;)|작성자 kdepirate
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
2. Valgrind 테스트
valgrind --leak-check=yes main
3. 간단 실행법
valgrind --tool=memcheck --leak-check=full [프로그램] [실행인자들...]
'Linux' 카테고리의 다른 글
[Ubuntu]Samba 사용법 (0) | 2008.07.18 |
---|---|
[Linux]명령 (Command) (0) | 2008.07.15 |
[Linux]Poll 구현 분석 (0) | 2008.07.14 |
[Linux]리눅스 관리자가 알아두어야 할 50가지 (0) | 2008.07.14 |
[Linux] iptables (0) | 2008.07.14 |