LOCKSMITH: context-sensitive correlation analysis for race detection. One common technique for preventing data races in multi-threaded programs is to ensure that all accesses to shared locations are consistently protected by a lock. We present a tool called LOCKSMITH for detecting data races in C programs by looking for violations of this pattern. We call the relationship between locks and the locations they protect consistent correlation, and the core of our technique is a novel constraint-based analysis that infers consistent correlation context-sensitively, using the results to check that locations are properly guarded by locks. We present the core of our algorithm for a simple formal language λ> which we have proven sound, and discuss how we scale it up to an algorithm that aims to be sound for all of C. We develop several techniques to improve the precision and performance of the analysis, including a sharing analysis for inferring thread locality; existential quantification for modeling locks in data structures; and heuristics for modeling unsafe features of C such as type casts. When applied to several benchmarks, including multi-threaded servers and Linux device drivers, LOCKSMITH found several races while producing a modest number of false alarm.
Keywords for this software
References in zbMATH (referenced in 10 articles )
Showing results 1 to 10 of 10.
- Abal, Iago; Brabrand, Claus; Wąsowski, Andrzej: Effective bug finding in C programs with shape and effect abstractions (2017)
- Lidbury, Christopher; Donaldson, Alastair F.: Dynamic race detection for C++11 (2017)
- Tang, Hao; Wang, Di; Xiong, Yingfei; Zhang, Lingming; Wang, Xiaoyin; Zhang, Lu: Conditional Dyck-CFL reachability analysis for complete and efficient library summarization (2017)
- Pun, Ka I; Steffen, Martin; Stolz, Volker: Effect-polymorphic behaviour inference for deadlock checking (2016)
- Yasukata, Kazuhide; Tsukada, Takeshi; Kobayashi, Naoki: Verification of higher-order concurrent programs with dynamic resource creation (2016)
- Kirchner, Florent; Kosmatov, Nikolai; Prevosto, Virgile; Signoles, Julien; Yakobowski, Boris: Frama-C: a software analysis perspective (2015) ioport
- Vojdani, Vesal: Static data race analysis of heap-manipulating C programs (2010)
- Seidl, Helmut; Vojdani, Vesal: Region analysis for race detection (2009)
- Yasuoka, Hirotoshi; Terauchi, Tachio: Polymorphic fractional capabilities (2009)
- Wang, Chao; Yang, Yu; Gupta, Aarti; Gopalakrishnan, Ganesh: Dynamic model checking with property driven pruning to detect race conditions (2008)