위키득계정 ↗
기술

Memcheck

Memcheck기술
소속 도구
Valgrind
기본 선택
Valgrind의 기본 검사 도구
주요 대상
C와 C++ 메모리 오류
추가 분석
초기화하지 않은 값의 출처 추적
Memcheck는 Valgrind에 포함된 메모리 오류 검사 도구다. 잘못된 메모리 접근과 초기화하지 않은 값의 사용, 부적절한 해제 및 누수 등을 실행 중에 찾아 원인 분석에 필요한 정보를 보고한다.

유효하지 않은 접근

힙 범위를 넘거나 해제된 메모리를 사용하는 등 접근해서는 안 되는 위치를 검사한다. 보고할 때 해당 주소의 할당이나 해제 위치를 알아낼 수 있으면 함께 보여 준다.

초기화하지 않은 값

초기화하지 않은 자료가 복사되는 것 자체만으로 바로 보고하지는 않는다. 프로그램의 외부 동작에 영향을 줄 수 있는 방식으로 사용될 때 오류를 보고하며 출처 추적으로 원인을 좁힐 수 있다.

할당과 해제의 대응

같은 메모리를 두 번 해제하거나 할당 방식에 맞지 않는 해제 함수를 쓰는 문제를 찾는다. 메모리 누수도 검사하므로 접근의 유효성뿐 아니라 메모리 수명의 관리도 다룬다.

탐지와 차단의 차이

잘못된 주소 접근을 보고한다고 그 접근 자체를 막는 것은 아니다. 원래 충돌할 실행이라면 보고 뒤에도 충돌할 수 있으며, 보고는 오류를 조사하기 위한 단서가 된다.

관련 문서

AddressSanitizer / MemorySanitizer / Callgrind / 델타 디버깅 / 소프트웨어 테스트 / 디버깅