A suite of runtime sanitizers for detecting memory errors, data races, and undefined behavior in C/C++ programs.
Sanitizers is a suite of runtime debugging tools developed by Google for detecting memory corruption, threading issues, and undefined behavior in C, C++, and Go programs. It includes AddressSanitizer for memory errors, ThreadSanitizer for data races, MemorySanitizer for uninitialized memory use, and other specialized tools that instrument code at compile time to catch bugs during execution.
C, C++, and Go developers working on systems software, applications, or kernels who need to identify hard-to-find memory and concurrency bugs during testing and development.
Developers choose Sanitizers because they provide comprehensive, fast runtime detection with relatively low performance overhead compared to traditional debugging methods, and they're integrated into major compilers like LLVM and GCC for easy adoption.
AddressSanitizer, ThreadSanitizer, MemorySanitizer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes tools like AddressSanitizer for memory errors and ThreadSanitizer for data races, covering a wide range of hard-to-find issues in C, C++, and Go.
Easily enabled via flags in major compilers like LLVM and GCC, reducing setup effort and allowing seamless adoption in build pipelines.
Designed with relatively low performance impact compared to alternatives like Valgrind, making it suitable for regular testing cycles.
HWASAN variant uses hardware features to reduce memory usage, offering a more scalable option for large applications.
The original Google repository is no longer updated, forcing users to rely on fragmented bug reporting across LLVM, GCC, or vendor channels for support.
Instrumentation can double memory usage and slow execution by 2x or more, limiting practical use to debugging and testing phases.
Requires whole-program instrumentation and specific compiler versions, which may not integrate smoothly with all build systems or legacy codebases.