2008 · 11 citations · 10 references
ComputingComputer ScienceCompilersParallel ComputingProgramming LanguagesConcurrency AnalysisConcurrent ProgrammingData SynchronizationError DetectionRace Condition VulnerabilitiesStatic Code AnalysisConcurrency Bug DetectionConcurrency Bug LocalizationConcurrent Error DetectionRace ConditionsStatic Concurrency AnalysisSynchronizationSynchronization Error DetectionSynchronization Mechanisms
Concurrent programming is getting more and more important. Managing concurrency requires the usage of synchronization mechanisms, which is error-prone. Well-known examples for synchronization defects are deadlocks and race conditions. Detecting such errors is known to be difficult. There are several approaches to identify potential errors, but they either produce a high number of false positives or suffer from high computational overhead, catching only a small number of defects. Our approach uses static analysis techniques combined with points-to and may-happen-in-parallel (MHP) information to reduce the number of false positives. Additionally, we present code patterns indicating possible synchronization problems. We have implemented our approach using the Java framework Soot. Our tool was tested with small code examples, an open source web server, and commercial software. First results show that the number of false positives is reduced significantly.
10
Stefan Savage, Michael T. Burrows, Greg Nelson et al. · ACM Transactions on Computer Systems · 1997 · 1.6K citations · Full text
Willem Visser, Klaus Havelund, Guillaume Brat et al. · Automated Software Engineering · 2003 · 1.4K citations
Extended static checking for Java
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge et al. · 2002 · 1.3K citations
Dawson Engler, Ken Ashcraft · ACM SIGOPS Operating Systems Review · 2003 · 664 citations
Interlending & Document Supply · 2002 · 287 citations