많은 분들이 42 과제를 하려면 sanitizer
를 공부하는 것이 좋다고 조언해주셨습니다.
그래서 저도 해보려고 합니다. sanitizer 공부.
sanitizer
(새니타이저)는 google에서 설계한 동적 코드 분석(dynamic code analysis) 오픈 소스 도구입니다.
sanitizer의 코드는 LLVM 저장소에 존재합니다.
→ 정확하게는 도구’들’이니 sanitizer’s’라고 써야 할 것 같습니다.
sanitizers
는 감지기(detector)의 역할에 따라 아래와 같이 분류할 수 있습니다.
보통 C/C++에서 오류 감지를 위해 사용합니다.
KASAN, KMSAN, KCSAN
등 도구 사용 가능사용 가능한 OS로는 Linux, macOS, WSL 등이 있습니다. 심지어 Android에서도 사용할 수 있습니다. 물론 감지기마다 OS 지원 여부가 조금씩 다르기 때문에 사용하기 전 google의 github 혹은 OS 매뉴얼에서 확인하는 것이 좋겠습니다.
GitHub - google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
참고로, 42 과제를 하다보면 보통 gcc 컴파일러의 옵션으로 sanitizer를 아래와 같이 사용할텐데