tdv icon indicating copy to clipboard operation
tdv copied to clipboard

Thread Dump Analyzer

Thread Dump Viewer

🚀 Offline Thread Dump Analyzer.

Disclaimer: While I am making this for my own use, I will try to fix reported issues, as much time allows me to 🤷‍♂️.

☕️ You can still buy me a coffee :)

Usage

Download the fat jar and run it:

java -jar tdv-X.Y.Z-all.jar <thread-dump-file>[.gz]

The input may be a 1) raw thread dump or 2) a gzipped thread dump.

The report will be generated in the out subfolder as HTML file. It is a huge report, and it is not beautiful, but it is functional.

TDV Report

The report contains the following sections:

  • Thread Stats - general stats about threads (all, application, system)
  • Tomcat - Tomcat stats (if detected)
  • Daemon Stats - stats about daemon threads
  • GC Stats - stats about garbage collection
  • Pools - detected thread pools
  • Blocks - thread blocking analysis
  • Flamegraph - interactive flamegraph of stack traces
  • Call Tree - call tree
  • Exceptions - all captured exceptions
  • CPU consuming threads - threads sorted by CPU consumption
  • Threads with identical stack trace
  • List of missing locks - locks that are not released

TDV SQL Console

Yes, you can query the thread dump using SQL.

  • SQL Console

TODO

  • [X] Stats per thread pool
  • [ ] Deadlocks detection (as soon as I get a thread dump with a deadlock)
  • [ ] Detect complex deadlocks (e.g. A -> B -> C -> A)
  • [ ] Thread histogram per priorities
  • [ ] Latest executed methods?]