How to debug Linux multi-threaded code, including race conditions
Speaker: Greg Law
Audience level: [ Intermediate | Advanced ]
Race conditions and other issues with multi-threaded code can be fiendishly difficult to debug. Too often we rely on printf, coffee and swearing -- we can do better!
A practical talk with lots of demos and few slides, covering topics including:
How to debug multiple threads in GDB
How to use ThreadSanitizer (TSan) to easily debug race conditions
How to use Helgrind for detecting thread synchronization errors
How to use time travel debugging to quickly root cause bugs
How to use thread fuzzing to expose concurrency bugs