Sanitize for your Sanity: Sanitizers tools for Modern C++
summary
Covers concrete results: how to instrumenting an application with GCC/LLVM flags, CMake and Conan toolchain tricks, and when rebuilding dependencies is mandatory; explains address, memory, thread, undefined-behavior sanitizers and LeakSanitizer plus experimental hardware support; shows shadow‑memory mechanics and stack red zones; quantifies typical overhead as 2x–3x memory/slowdown and gives mitigation: selective instrumentation, ignore attributes, suppressions, shared vs static runtime issues, and cross‑language (Rust/Python) bridge constraints and false‑negative causes.
AI-written summary · about
chapters (30)
- 0:00Introduction to sanitizers for memory safety
- 1:08Approaches to ensure memory safety in C++
- 2:10Overview of major sanitizer tools
- 3:13Building and packaging sanitized code
- 6:23Configuring build systems for sanitizers
- 7:28Deep dive into Address Sanitizer
- 9:33Live demo of Address Sanitizer in action
- 14:15How Address Sanitizer handles stack memory
- 16:46Shadow memory and its role in detection
- 17:50Performance costs and optimizations of sanitizers
- 19:21Disabling checks and false positives mitigation
- 21:29Leak Sanitizer and its use cases
- 23:13Thread Sanitizer for concurrency bugs
- 26:03Common pitfalls with sanitizer integration
- 27:48Platform-specific behavior of sanitizers
- 29:17Bloomberg’s experience with sanitizers
- 30:00Memory Sanitizer limitations and alternatives
- 32:12Costs and false positives in Thread Sanitizer
- 33:15Sanitizer interactions with static libraries
- 35:29Handling dynamic libraries and sanitizers
- 37:00Cross-language support with Rust and sanitizers
- 41:11Building Rust-C++ bridges with sanitizers
- 44:23Challenges in cross-language sanitizer integration
- 45:26Where and how to use sanitizers effectively
- 47:12Unit tests and integration tests with sanitizers
- 48:40Fuzzing and data coverage for sanitizers
- 49:45Running sanitizers in production safely
- 51:49Deployment strategies for sanitizers in production
- 52:11Summary and key takeaways from the talk
- 53:05Q&A session on sanitizer documentation and issues
related talks
01h 02mSanitize your C++ code
59mBeyond Sanitizers...
40mAddressSanitizer, or How to Make C/C++ Programs More Reliable and Secure
50mSecure development with C++ - Lessons and techniques
14mSANRAZOR: Reducing Redundant Sanitizer Checks in C/C++ Programs
50mAddressSanitizer/ThreadSanitizer for Linux Kernel
18mDon't Look UB: Exposing Sanitizer-Eliding Compiler Optimizations
01h 03mPurging Undefined Behavior & Intel Assumptions in a Legacy C++ Codebase
