If every thread is waiting to enter monitors that are owned by another thread, the system runs into a deadlock situation. A thread/monitor dump is what programmers need to find the cause of this kind of deadlocks.1 A thread/monitor dump includes the following information:
To obtain a consistent view of all threads and all monitors, we
suspend all threads when collecting thread/monitor dumps. The JDK has
historically provided support for thread/monitor dumps triggered by
special key sequences (such as Ctrl-Break on Win32). The JVMPI now
allows the profiler agent to obtain the same information
programmatically.