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