[Java] 如何在Eclipse中强制线程转储?


Answers

您可以在调试模式下执行此操作:在调试视图中转到调试视图,单击已启动的进程并单击暂停,您将获得所有进程的图形堆栈。

注意:在使用远程调试的时候也是这样,你不需要从eclipse启动weblogic,也可以自己启动weblogic,打开调试端口,为它创建一个“远程Java应用程序调试配置”。

Question

我正在通过BEA Weblogic Server v9.2运行时环境在Eclipse内启动Weblogic应用程序。 如果这是从命令行直接运行,我会做一个CTRL-BREAK强制线程转储。 有没有办法在Eclipse中做到这一点?




Eclipse Wiki: 如何报告死锁列出了在Eclipse中创建线程转储的所有可能选项。 根据具体情况,其中一个可能会更好 - 在Windows上我个人最喜欢的是Adaptj Stacktrace工具。




如果你更喜欢基于UI的解决方案visualvm可能是一个不错的选择。 (与JDK一起分发也是有利的)

在visualvm中进行线程转储:

  1. 连接到进程(远程或本地)和
  2. Threads (选项卡) - > Thread Dump (按钮)



您可以通过JVisualVM进行连接并获取线程转储。 只需右键单击应用程序树中的应用程序节点,然后选择“线程转储”