레이블이 valgrind인 게시물을 표시합니다. 모든 게시물 표시
레이블이 valgrind인 게시물을 표시합니다. 모든 게시물 표시

Linux valgrind 를 이용한 메모리 누수 체크

// valgrind 설치
// 참고 : http://www.valgrind.org/
sudo yum install valgrind

// 기본 사용
valgrind ysoftman(실행가능한 바이너리)

// 메모리 누수 부분 체크
valgrind --leak-check=full ysoftman(실행가능한 바이너리)

// apache httpd 웹서버 메모리 누수 모니터링
// 다음 명령 실행 후 브라우저로 웹페이지 요청하면 콘솔 화면에 메모리 상태가 출력된다.
sudo valgrind --leak-check=full --trace-children=yes ./apachectl -k start

// 항목별 메모리 블럭 누수를 확인 할 수 있다.
definitely lost: 블럭 해제(free) 코드를 사용하지 않은 명백한 메모리 누수가 있음을 나타낸다.
indirectly lost: 블럭을 가르키는 포인터를 상실한 경우로 예를들어 이진트리의 루트노드를 잃어버리면 자식 노드 블럭 포인터를 간접적으로 잃어버리는 경우를 나타낸다.
possibly lost: 내부 포인터가 해제 되지 않은 경우로, 자신이 모르는 내부 포인터인 경우 신경 쓰지 않아도 된다.
still reachable: 메모리 블럭을 아직까지 사용하고 있는 경우, 프로그램 종료되기전에 해제해야될 메모리 블럭을 나타낸다.