Effective Static Race Detection for Java
Mayur Naik, Alex Aiken, and John Whaley
We present a novel technique for static race detection in Java programs, comprised of a series of stages that employ a combination of static analyses to successively reduce the pairs of memory accesses potentially involved in a race. We have implemented our technique and applied it to a suite of multi-threaded Java programs. Our experiments show that it is precise, scalable, and useful, reporting tens to hundreds of serious and previously unknown concurrency bugs in large, widely-used programs with few false alarms.
In Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation (PLDI'06), pages 308-319, Ottawa, Canada, June 2006.
[PDF paper] [PS paper] [PPT slides] [experimental results]