지난 주에 저는 사용자와 커널 공간 사이에 메시지를 전달할 수 있는 문자 장치 드라이버를 생성하는 간단한 커널 모듈 작업을 진행했습니다.
모든 것이 괜찮습니다. KEDR을 찾았습니다(https://github.com/euspectre/kedr), 이제 메모리 누수를 감지할 수 있습니다.
하지만 문제는 이를 탐지할 수 있는 방법이 있느냐는 것입니다.국경 간 접근그리고 다음과 같은 기타 오류초기화되지 않은 메모리등? 사용자 공간 프로그램에서 우리는 때때로세그폴트, 또는 우리는 사용할 수 있습니다월그린드대부분의 오류를 감지해 보세요.
배열 범위 밖에서 인위적으로 쓰기를 시도했지만 OS는 불평하지 않았습니다.
답변1
카산매우 가깝습니다 memcheck
. 그게 바로 그 뜻입니다 valgrind
.
이것은커널 주소 클리너[LWN.net 2014]. 당신은 또한 볼 수 있습니다소프트웨어 태그 기반의 KASAN[LWN.net 2018].