- FindBugs – works on Java. In the list of bugs detected all of the “Multithreaded correctness” bugs are relevant to concurrency. Command-line interface or eclipse plugin (eclipse plugin update site:http://findbugs.cs.umd.edu/eclipse/)
- Lint – a UNIX tool for C
- JLint – a Java version of Lint that is available as stand alone or eclipse plugin (eclipse plugin update site:http://www.jutils.com/eclipse-update)
- Parasoft JTest – commercial tool that combines static analysis and testing. Has capability to check for thread safety in multithreaded Java programs.
- Coverity Static Analysis and Static Analysis Custom Checkers – commercial tool that can be used to create custom static analyzers to find concurrency bugs in C/C++ programs.
- GrammaTech’s CodeSonar – commercial tool that can detect a special case race condition and locking issues in C/C++ (see datasheet for list of all bugs detected).
- Chord – static and dynamic analysis tool for Java (listed above as well).
- JSure for Concurrency – a commercial tool from SureLogic that is currently available in early release.
- ESC/Java 2 – can detect race conditions and deadlocks – requires annotation (more…)
- Relay – static race detection
- RacerX – uses flow-sensitive static analysis tool for detection race conditions and deadlocks in C [paper] [slides]
- SyncChecker – a tool developed by F. Otto and T. Moschny for finding race conditions and deadlocks in Java. Reduce false positives by combining static analysis with points-to and may-happen-in-parallel (MHP) information.
- Warlock – race detection tool for C – requires annotation.