Java 8u20核心转储(线程转储丢失堆栈跟踪)

时间:2015-03-08 17:56:17

标签: java-8 stack-trace coredump jvisualvm jstack

我最近使用 jvisualvm jstack 来分析Java 8u20 tomcat核心转储。对于大多数线程,我能够看到完整的堆栈跟踪,例如

Thread 21234: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean, long) ...

但对于当前线程(导致核心转储的线程),没有堆栈跟踪,我看到的只有:

Thread 28888: (state = IN_JAVA)

我找到了IN_JAVA的以下解释:

  • NEW:刚开始,即正在初始化。
  • IN_NATIVE:以原生代码运行。
  • IN_NATIVE_TRANS:对应的过渡状态。
  • IN_VM:在VM中运行。
  • IN_VM_TRANS:对应的过渡状态。
  • IN_JAVA:使用Java或存根代码运行。
  • BLOCKED:在vm中被阻止。
  • BLOCKED_TRANS:对应的过渡状态。

he_err日志显示java中调用VM本机代码的方法,但我对java端堆栈的其余部分感兴趣。

对于为什么会这样做的任何想法都会非常感激!

0 个答案:

没有答案