Ever wondered if there is an easier way to find a race or deadlock in multi-threaded code?
This talk presents the ideas and design behind ConcurrencyCheck, a static analysis tool that finds data races, deadlocks, uses of stale data, and other mistakes in concurrent C++ code. ConcurrencyCheck is the replacement for the LocalEspC analysis tool in Visual Studio, and complements the annotation-based approach with a built-in understanding of standard library types and standard idioms such as RAII. While ConcurrencyCheck currently works with the MSVC compiler, the approach is generally applicable and could be ported to other compilers and static analysis frameworks.