Linux useful tool Valgrind(dynamic analysis). 02 Memcheck
Memcheck는 메모리 관련 에러를 찾을 수 있는 vlagrind의 기능입니다.
검출 가능한 에러
valgrind는 이런 작은 부분의 메모리 에러까지 확인할 수 있습니다.
참고 자료
검출 가능한 에러
- 접근 불가능한 영역에 대한 메모리 접근. 예) heap 영역의 오버런 또는 언더런, stack 영역의 오버런, 메모리 해제 후 사용 접근
- 정의되지 않은 값. 예) 초기화 되지 않음
- 힙 영역의 잘못된 메모리 해제. 예) double free, 메모리 할당과 해제의 미스 매칭
- memcpy함수의 src / dst가 겹치는 경우
- 메모리 할당 시 인자로 이상한 값을 전달하는 경우
- 메모리 누수
위와 같은 에러를 찾을 수 있기 때문에 memcheck를 활용하는 것은 프로그램의 신뢰성을 높일 수 있습니다.
사용자가 오래 사용하여 검증되었다고 생각하는 코드는 메모리 에러를 생각하지 않을 뿐더러 소스 코드로 검출하는 작업도 오래 사용해서 문제가 없을 것이라는 인식 때문에 자세히 보지 않게 됩니다. 특히나 매우 작은 메모리가 지속적으로 누수 되는 것은 코드로 보았을 때 찾기 힘들 뿐더러, 장시간 프로그램을 동작하지 않으면 누수가 나는지 조차도 모를 수 있습니다.
valgrind는 이런 작은 부분의 메모리 에러까지 확인할 수 있습니다.
참고 자료
댓글
댓글 쓰기