Below each Java™ thread is a stack trace, which represents the hierarchy of Java method calls made by the thread.
The following example is taken from the same Javadump that is used in the LOCKS example. Two threads, "DeadLockThread 0" and "DeadLockThread 1", are in blocked state. The application code path that resulted in the deadlock between "DeadLockThread 0" and "DeadLockThread 1" can clearly be seen.
There is no current thread because all the threads in the application are blocked. A user signal generated the Javadump.
------------------------------------------------------------------------ THREADS subcomponent dump routine ================================= Current Thread Details ---------------------- All Thread Details ------------------ Full thread dump J9SE VM (J2RE 5.0 IBM J9 2.3 Linux x86-32 build 20060714_07194_lHdSMR, native threads): "DestroyJavaVM helper thread" TID:0x41508A00, j9thread_t:0x00035EAC, state:CW, prio=5 (native thread ID:3924, native priority:0, native policy:SCHED_OTHER, scope:00A6D068) "JIT Compilation Thread" TID:0x41508E00, j9thread_t:0x000360FC, state:CW, prio=11 (native thread ID:188, native priority:11, native policy:SCHED_OTHER, scope:00A6D068) "Signal Dispatcher" TID:0x41509200, j9thread_t:0x0003659C, state:R, prio=5 (native thread ID:3192, native priority:0, native policy:SCHED_OTHER, scope:00A6D084) at com/ibm/misc/SignalDispatcher.waitForSignal(Native Method) at com/ibm/misc/SignalDispatcher.run(SignalDispatcher.java:84) “DeadLockThread 0" TID:0x41DAAD00, j9thread_t:0x42238A1C, state:B, prio=5 (native thread ID:1852, native priority:0, native policy:SCHED_OTHER, scope:00A6D068) at Test$DeadlockThread0.SyncMethod(Test.java:112) at Test$DeadlockThread0.run(Test.java:131) "DeadLockThread 1" TID:0x41DAB100, j9thread_t:0x42238C6C, state:B, prio=5 (native thread ID:1848, native priority:0, native policy:SCHED_OTHER, scope:00A6D068) at Test$DeadlockThread1.SyncMethod(Test.java:160) at Test$DeadlockThread1.run(Test.java:141)
If the Javadump is triggered on a running Java thread, the Current Thread Details section shows a Java thread name, properties and stack trace. This output is generated if, for example, a GPF occurs on a Java thread, or if the com.ibm.jvm.Dump.JavaDump() API is called.
Current Thread Details ---------------------- "main" TID:0x0018D000, j9thread_t:0x002954CC, state:R, prio=5 (native thread ID:0xAD0, native priority:0x5, native policy:UNKNOWN) at com/ibm/jvm/Dump.JavaDumpImpl(Native Method) at com/ibm/jvm/Dump.JavaDump(Dump.java:20) at Test.main(Test.java:26)
Typically, Javadumps triggered by a user signal do not show a current thread because the signal is handled on a native thread, and the Java threads are suspended while the Javadump is produced.