유효하지 않은 접근
힙 범위를 넘거나 해제된 메모리를 사용하는 등 접근해서는 안 되는 위치를 검사한다. 보고할 때 해당 주소의 할당이나 해제 위치를 알아낼 수 있으면 함께 보여 준다.
초기화하지 않은 값
초기화하지 않은 자료가 복사되는 것 자체만으로 바로 보고하지는 않는다. 프로그램의 외부 동작에 영향을 줄 수 있는 방식으로 사용될 때 오류를 보고하며 출처 추적으로 원인을 좁힐 수 있다.
할당과 해제의 대응
같은 메모리를 두 번 해제하거나 할당 방식에 맞지 않는 해제 함수를 쓰는 문제를 찾는다. 메모리 누수도 검사하므로 접근의 유효성뿐 아니라 메모리 수명의 관리도 다룬다.
탐지와 차단의 차이
잘못된 주소 접근을 보고한다고 그 접근 자체를 막는 것은 아니다. 원래 충돌할 실행이라면 보고 뒤에도 충돌할 수 있으며, 보고는 오류를 조사하기 위한 단서가 된다.
관련 문서
AddressSanitizer / MemorySanitizer / Callgrind / 델타 디버깅 / 소프트웨어 테스트 / 디버깅