如何从核心转储中获取threaddump并使用等待线程信息

时间:2016-02-22 21:12:04

标签: thread-dump

我在solaris机器上使用java 1.6。

我使用以下命令从核心文件/usr/java/bin/jstack -J-d64 /usr/java/bin/java core

获取threaddump

我得到了以下输出,显示该线程处于BLOCKED状态,但它没有显示它正在等待的线程。

Thread t@165517: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2, line=485 (Compiled frame)
 - org.apache.tomcat.util.net.JIoEndpoint$Worker.await() @bci=8, line=416   (Compiled frame)
 - org.apache.tomcat.util.net.JIoEndpoint$Worker.run() @bci=11, line=442 (Compiled frame)
 - java.lang.Thread.run() @bci=11, line=662 (Interpreted frame)


Thread t@165516: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2, line=485 (Compiled frame)
 - org.apache.tomcat.util.net.JIoEndpoint$Worker.await() @bci=8, line=416     (Compiled frame)
 - org.apache.tomcat.util.net.JIoEndpoint$Worker.run() @bci=11, line=442 (Compiled frame)
 - java.lang.Thread.run() @bci=11, line=662 (Interpreted frame)

如何从具有

等输出格式的核心文件中获取线程转储
daemon prio=3 tid=0x0000000100d4cc00 nid=0x4576 in Object.wait() [0xfffffffd35cff000..0xfffffffd35cff640]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xfffffffd70277c58> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
        at java.lang.Object.wait(Object.java:485)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:416)
        - locked <0xfffffffd70277c58> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:442)
        at java.lang.Thread.run(Thread.java:619)

谢谢,海伦

0 个答案:

没有答案