Sanitizers is a collection of dynamic analysis tools that detect memory safety and concurrency bugs in C and C++ programs.
The tools address critical classes of runtime errors that static analysis cannot catch. AddressSanitizer detects addressability violations and memory leaks by instrumenting memory access operations. ThreadSanitizer identifies data races and deadlocks in multithreaded code. MemorySanitizer catches use of uninitialized memory. Each tool works by instrumenting the compiled code to track relevant state at runtime and report violations when detected.
Developers working on C and C++ codebases where memory safety and correctness are priorities should consider these tools as part of their testing infrastructure. They are particularly valuable in large systems where subtle bugs are expensive to find in production. The tools integrate with LLVM and GCC compilers, making them accessible across different build environments. Hardware-assisted AddressSanitizer offers a lower-memory variant for scenarios where standard AddressSanitizer's overhead is prohibitive.
This repository is archived and no longer actively maintained. The core sanitizer implementations have been integrated into the LLVM project, and users should report bugs to the LLVM issue tracker rather than this repository. The repository is retained for historical documentation and reference purposes only. New development and bug fixes occur in the LLVM repository, making that the appropriate place to track ongoing work on these tools.