CppCon 2018: Anna Gringauze “Static analysis for concurrent C++ in Visual Studio”

preview_player
Показать описание


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.

Anna Gringauze
Senior Software Engineerining Manager, Microsoft
Static analysis, windsurfing, formal verification, cats, security, sailing, lengths of formal proofs, music


*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

About the first example, Visual Studio ships with ATL, which has CComAutoCriticalSection and CComCritSecLock classes for couple decades already. Won't help with extra method issue, but the lock class would eliminate the first bug where programmer forgot to release the CS.

soonts
Автор

Remember MFC??? Last time it was updated was in 2008 feature pack.

dasbudd
Автор

Any chance these are ported to the C++ attribute syntax?

snow