What is JCarder?

JCarder is an open source tool for finding potential deadlocks in concurrent multi-threaded Java programs. It does this by instrumenting Java byte code dynamically (i.e., it is not a tool for static code analysis) and looking for cycles in the graph of acquired locks.

The only requirement is that the program you want to analyze can be run in an ordinary JVM (compliant with Java 5.0 or higher). There is no need to use a special JVM or build procedure.

JCarder is released to the open source community by Enea under the GNU GPL v2 license.


How to use JCarder

It's very easy to use JCarder!

Step one: Run your program together with the JCarder agent:

java -javaagent:jcarder.jar -jar yourprogram.jar

Step two: Run the JCarder analyzer on the result:

java -jar jcarder.jar

Step three: Visualize information from the analysis step:

dotty jcarder_result_0.dot

For more information, see the manual.