많은 분들이 42 과제를 하려면 sanitizer를 공부하는 것이 좋다고 조언해주셨습니다. 그래서 저도 해보려고 합니다. sanitizer 공부.

1. sanitizer?


sanitizer(새니타이저)는 google에서 설계한 동적 코드 분석(dynamic code analysis) 오픈 소스 도구입니다. sanitizer의 코드는 LLVM 저장소에 존재합니다.

→ 정확하게는 도구’들’이니 sanitizer’s’라고 써야 할 것 같습니다.

sanitizers는 감지기(detector)의 역할에 따라 아래와 같이 분류할 수 있습니다. 보통 C/C++에서 오류 감지를 위해 사용합니다.

사용 가능한 OS로는 Linux, macOS, WSL 등이 있습니다. 심지어 Android에서도 사용할 수 있습니다. 물론 감지기마다 OS 지원 여부가 조금씩 다르기 때문에 사용하기 전 google의 github 혹은 OS 매뉴얼에서 확인하는 것이 좋겠습니다.

GitHub - google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer

참고로, 42 과제를 하다보면 보통 gcc 컴파일러의 옵션으로 sanitizer를 아래와 같이 사용할텐데