如何在 Eclipse 中强制线程转储?
2022-09-01 11:51:18
我正在通过BEA Weblogic Server v9.2运行时环境在Eclipse内部启动一个Weblogic应用程序。如果这是直接从命令行运行的,我会执行ctrl-BREAK来强制线程转储。有没有办法在Eclipse中做到这一点?
我正在通过BEA Weblogic Server v9.2运行时环境在Eclipse内部启动一个Weblogic应用程序。如果这是直接从命令行运行的,我会执行ctrl-BREAK来强制线程转储。有没有办法在Eclipse中做到这一点?
事实上(感谢VonC指向SO线程),Dustin在他的消息的评论中指向jstack。
我在Eclipse中运行了一个小的Java应用程序(带有GUI),我可以在Windows的进程管理器及其PID 7088中看到相关的javaw.exe(当然,在Unix中它更简单)。
如果我在命令提示符下键入,则每个线程都有所需的堆栈转储。
凉。jstack 7088
如果我们能直接从Eclipse做到这一点会更好,但这已经很有用了。
您可以在调试模式下执行此操作:转到调试透视图中的调试视图,单击已启动的进程,然后单击暂停,您将获得所有进程的图形堆栈。
注意:这在使用远程调试时也有效,您不需要从eclipse启动weblogic,您可以自行启动它,打开调试端口并为它创建“远程java应用程序调试配置”。