유 닉 스 에서 C 프로그램 메모리 누 출 검사 도구 Valgrind 설치 및 사용

Valgrind 는 메모리 디 버 깅, 메모리 누 출 검사 및 성능 분석 에 사용 되 는 소프트웨어 개발 도구 입 니 다.
Valgrind 의 최초 작 가 는 Julian Seward 였 다. 그 는 2006 년 Valgrind 개발 작업 으로 제2회 Google - O 'Reilly 오픈 소스 코드 상 을 받 았 다.
Valgrind 는 GNU 공용 라이선스 조항 을 준수 하 는 자유 소프트웨어 입 니 다.
 
홈 페이지
http://www.valgrind.org
 
다운로드 및 설치
#wget http://www.valgrind.org/downloads/valgrind-3.8.1.tar.bz2#tar xvf valgrind-3.8.1.tar.bz2#cd valgrind-3.8.1#./configure --prefix=/usr/local/webserver/valgrind#make#make install
 
테스트 코드
#include 
int* func(void)
{
   int* x = malloc(10 * sizeof(int));
   x[10] = 0;  //  1:       
}                  
 int main(void)
{
   int* x=NULL;
   x=func();
   //free(x);  
   x=NULL;
   return 0;   //  2:       
 }

컴 파일
#gcc -g -o test test.c
 
메모리 검사 \ # valgrind -- tool = memcheck -- leak - check = yes -- show - reachable = yes. / test
 
보고서:
 
설명 하 다.
 Invalid write of size 4: 배열 이 경 계 를 넘 어 4 바이트 를 썼 음 을 나타 낸다.
40 bytes in 1 blocks: 프로그램 종료 로 메모리 유출 40 바이트
 
버그 복구, 메모리 유출 없 음 재 확인
 
문서:
Valgrind 에 포 함 된 Memcheck 도 구 는 다음 과 같은 프로그램 오 류 를 검사 할 수 있 습 니 다. 초기 화 되 지 않 은 메모리 (Use of uninitialised memory) 를 사용 하여 방출 된 메모리 (Reading / writeing memory after it has been free 'd) 를 사용 하여 malloc 가 할당 한 메모리 공간 (Reading / writeing off the end of malloc' d blocks) 을 초과 합 니 다.스 택 에 대한 불법 접근 (Reading / writing inappropriate areas on the stack) 신청 공간 이 있 는 지 여부 (Memory leaks – where pointers to malloc 'd blocks are lost forever) malloc / free / new / delete 신청 과 메모리 방출 의 일치 (Mismatched use of malloc / new / new [] vs free / delete / delete []) src 와 dst 의 중첩(memcpy () 및 관련 함수 의 src 및 dst 포인 터 를 겹 쳐 서 사용)
 
기타 참고 도구: likwid  http://code.google.com/p/likwid/downloads/list

좋은 웹페이지 즐겨찾기