Wednesday
Room 1
10:20 - 11:20
(UTC+02)
Talk (60 min)
How Sanitizers Work
Sanitizers like AddressSanitizer and ThreadSanitizer can find issues in your code that your compiler and tests won't otherwise find. Some important examples include uses-after-free and data races. But how exactly are they able to do this?
Some sanitizers require you to rebuild your dependencies, but others don't. Why is that? How on earth can AddressSanitizer detect uses-after-free if deallocations in your dependencies aren't instrumented?
In this talk we'll look at how two commonly used sanitizers, AddressSanitizer and ThreadSanitizer, work under the hood. This will give you a better intuition for how to work with them, what kinds of errors you can expect them to find, and how to better interpret their results.
We'll also see why AddressSanitizer works even if you don't rebuild your dependencies, while ThreadSanitizer doesn't, and we'll see what you can do work around this if you're not able to rebuild your dependencies with ThreadSanitizer yet.
Finally, we'll see a practical example of how to configure Conan to automatically re-build and re-use dependencies for sanitizers.
After this talk, you'll not only know how to use sanitizers in practice, but also better understand their output and how to interact with them.
