Learn what AddressSanitizer, MemorySanitizer, ThreadSanitizer, and LeakSanitizer do and which class of bugs each tool finds.
Find where to report sanitizer bugs today, LLVM issue tracker for runtime issues, GCC bugzilla for the GCC port, or platform-specific trackers.
Repository is archived, tools now live in LLVM/Clang, you need to build or install a Clang/GCC toolchain to use them.
This repository was a Google-maintained home for a family of code analysis tools called sanitizers, used to find bugs in C and C++ programs. The tools work by monitoring a running program and flagging certain categories of problems that are otherwise very hard to find through normal testing. AddressSanitizer detects memory access errors such as reading memory that has already been freed. MemorySanitizer catches code that uses variables before giving them a value. ThreadSanitizer finds race conditions, which are bugs that occur when multiple threads of execution access shared data in an unsafe order. LeakSanitizer identifies memory that was allocated but never released. This repository has been archived and is no longer actively maintained. The actual sanitizer code has moved into the LLVM compiler project, which is the main open source compiler infrastructure used to build tools like Clang. The archived repository is preserved for historical documentation and reference but is not the right place to report new bugs. The README lists where to report bugs depending on the context: LLVM's issue tracker for sanitizer runtime problems, GCC's bug system for the GCC compiler port, Apple and Microsoft channels for their respective compilers, and Android's issue tracker for Android-related problems. Kernel variants of these tools, used for finding bugs in the Linux operating system kernel itself, are documented separately.
← google on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.