Dl-Check is a tool for finding potential deadlocks in Java programs via dynamic analysis approach.
|Public Maven repo||https://bintray.com/devexperts/Maven/dl-check|
Dl-Check is a dynamic tool for finding potential deadlocks in multithreaded programs. It constructs the lock-order graph (similar to wait-for graph, but all added edges not being removed, so it reflect lock acquisitions history) and finds cycles in it. Dl-Check uses various tecniques to get it fast and scalable and to avoid superfluous signals about potential deadlocks.
See this paper for details: [link will be here as soon as possible].
Dl-Check is implemented as Java agent, so you should add
-javaagent:dlcheck.jar option to analyze your application. To download the agent artifact use our Bintray repository: https://bintray.com/devexperts/Maven/dl-check.
Here is an example of command line usage:
Do not rename
Use the following code in your
pom.xml to use Dl-Check for tests.
Dl-Check can be configured via several system parameters (*-Dparam.name=value*).
- dlcheck.output defines path of file to be used for reporting. By default prints a report to the standard output.
- dlcheck.fail defines should Dl-Check throws an exception at the point of potential deadlock detection. Disabled by default.
- dlcheck.log.level defines internal logging level. Possible values: DEBUG, INFO (default value), WARN, ERROR.
- dlcheck.log.file defines path of file to be used for logging. By default logs are printed to the standard output.
- dlcheck.cache.dir [experimental] defines directory to be used for transformed classes caching. This feature is unstable, use it on your own risk.
- dlcheck.include defines the transformation scope using globs. For example, setting the value to
package.to.transform.*,another.package.to.transform.*informs Dl-Check to transform classes from these packages only. By default all classes are included.
- dlcheck.exclude defines the classes which should be excluded from transformation. The syntax is similar to dlcheck.include option.
Here is an example of Dl-Check output. For each potential deadlock the associated cycle, currently acquired locks and stack trace are available.
If you need help, you have a question, or you need further details on how to use lin-check, you can refer to the following resources:
You can use the following e-mail to contact us directly: