메모리 사용의 검사
범위를 벗어난 접근과 해제한 메모리의 사용 및 초기화되지 않은 자료의 잘못된 사용을 탐지한다. 정렬 조건과 기본 자료형의 불변 조건 위반도 검사한다. unsafe 코드가 지켜야 하는 조건을 실행 과정에서 확인하는 도구다.
실행 환경의 해석
다른 대상 플랫폼의 프로그램도 해석 실행해 엔디언처럼 플랫폼에 따른 자료 표현을 살펴볼 수 있다. 다만 모든 플랫폼 API와 외부 함수 호출이 지원되는 것은 아니다. 자료 경쟁과 일부 약한 메모리 동작도 검사 범위에 포함한다.
검사 통과의 의미
검사하는 것은 특정 입력과 특정 실행에서 나타난 동작이다. 다른 스레드 실행 순서나 입력에서만 발생하는 오류는 놓칠 수 있다. Miri에서 문제가 없다는 결과만으로 임의의 안전한 호출에서도 항상 올바르다는 건전성이 증명되는 것은 아니다.
관련 문서
Loom 동시성 테스트 / Rust / AddressSanitizer / Valgrind / 소프트웨어 테스트 / 가비지 컬렉션