We will present two dynamic testing tools based on compile-time instrumentation, both tools use the LLVM compiler.
- AddressSanitizer (ASan) finds memory bugs, such as use-after-free and out-of-bound accesses to heap and stack. This tool could be seen as a partial replacement for Valgrind and similar tools. The major advantages over Valgrind are the speed (less than 2x slowdown on average) and the ability to handle bugs related to stack and globals.
- ThreadSanitizer (TSan) finds data races. It uses the same race detection algorithm as the Valgrind-based TSan, but compile-time instrumentation allows it to be much faster (2x-4x slowdown).
We will also share our experience in deploying theses testing tools in large software projects.
Download
0 formats
No download links available.
Finding races and memory errors with LLVM instrumentation | NatokHD