개요
Code santizier은 Compiler Instrumentation을 활용하여서 Runtime에 버그를 잡는 Programming tool을 의미한다. 대표적인 예로 Shadow memory를 활용하셔어 Memory corruption을 추적하는 AddressSanitizer과 같은 툴이 있다.
종류
- Performance와 Memory overhead는 서로 trade-off관계이 있는 경우가 대다수임
- Scalability는 멀티 스레딩 환경 (보통 PARSEC)에서 어느정도 Scalability를 보였는지를 표시, ? (멀티 스레딩 구현 안함, 측정 안함), Low - Moderate - High로 표기
- Transparency는 Application수정 필요한지 표기. Yes (Full transparent), No (특정 기능이 없거나, 전체적으로 다시 구현해야 하는 경우)
Sanitizer 관련 프로젝트 정리
Name | Target | Target Vulnerability | Memory overhead | Performance overhead | Scalability |
---|---|---|---|---|---|
ASAN | Application | Memory corruption | 73% | 240% | Low |
KASAN | OS | Memory corruption | |||
LSan | Application | Memory Leak | |||
TSan | Application | Data races & Deda locks | |||
MSan | Application | Uninitialized memory | |||
UBSan | Application | Undefined behaviors |
Sanitizer 관련 논문 정리
Name | Target | Target Vulnerability | Memory overhead | Performance overhead | Scalability |
---|---|---|---|---|---|
ASAN | Application | Memory corruption | 73% | 240% | Low |
KASAN | OS | Memory corruption | |||
LSan | Application | Memory Leak | |||
TSan | Application | Data races & Deda locks | |||
MSan | Application | Uninitialized memory | |||
UBSan | Application | Undefined behaviors |