DTO Generator

Java Thread Dump Analyzer

Diagnose JVM deadlocks, thread pool bottlenecks, and CPU execution hotspots instantly.

SAMPLE DUMPS:
Deadlock Scenario
High CPU / Busy Pool
Healthy Spring Boot
Raw Thread Dump Input
FILTER STATE:
ALL (0)
RUNNABLE (0)
BLOCKED (0)
WAITING (0)
TIMED_WAITING (0)
Thread Analysis (0 / 0)

No threads match the selected filter criteria.

Everything You Need to Know About Java Thread Dump Analysis
Automated Java Deadlock & Lock Contention Detection
A Java Deadlock occurs when two or more threads are blocked forever, each waiting for a monitor lock held by the other.

Our Thread Dump Analyzer automatically scans monitor memory addresses (e.g. <0x000000076c8100f8>) to detect cyclic lock dependencies, identifying the exact thread names, line numbers, and locked resources causing application freezes.
Diagnose High CPU Usage & Thread Pool Exhaustion
When a Spring Boot or Tomcat application experiences 100% CPU usage or high latency, inspecting thread dumps reveals which thread pools (such as http-nio-exec-*, ForkJoinPool, or scheduled-executor-*) are active.

The analyzer groups threads by name prefix, counts state distributions, and performs Method Hotspot Analysis to pinpoint CPU-bound loops or slow database calls.
How to Capture a Java Thread Dump (`jcmd` & `jstack`)
Capture thread dumps directly from running JVM instances using standard command-line utilities:
  • Using jcmd (Recommended): jcmd <PID> Thread.print > thread_dump.txt
  • Using jstack: jstack -l <PID> > thread_dump.txt
  • Linux Kill Signal: kill -3 <PID> (Outputs thread dump to standard out / logs)
100% Client-Side Privacy & Secure Processing
Your enterprise diagnostic data remains completely confidential. All thread dump parsing, deadlock graph detection, and stack trace analysis occur locally inside your web browser.

None of your stack traces, class names, or server logs are transmitted to any external server or saved in a database.
Frequently Asked Questions (FAQ)

RUNNABLE (executing in JVM or waiting for OS CPU resources), BLOCKED (waiting for a monitor lock held by another thread), WAITING (waiting indefinitely for another thread to perform a specific action via wait/join/park), TIMED_WAITING (waiting for a specified period via sleep/parkNanos), and TERMINATED.

The parser parses lines containing 'waiting to lock <0x...>' and 'locked <0x...>'. It constructs a directed lock dependency graph and searches for cycles where Thread A holds Lock X and waits for Lock Y held by Thread B.

It is recommended to capture 3 to 5 thread dumps spaced 5-10 seconds apart. Comparing multiple dumps helps distinguish transiently busy threads from stuck/hung threads.

The analyzer supports standard JDK jstack output, jcmd Thread.print output, Oracle/OpenJDK JVM crash dumps, VisualVM thread dump exports, and APM log thread snapshots.

Made with for DTO Generation