我有一个正在运行的 Java 软件被卡住了。我想看看里面的景色,但不知道该怎么做。
有没有什么工具可以提供 PID,它会告诉我每个线程当前所在的位置,也许还有一些变量值?我正在运行 Linux。
我或多或少知道是什么导致了问题,但仍有一些可能的情况,因此查明它会很好。
我无法重现错误,因为它每隔几天出现一次,调试时从未出现过,所以这是一个独特的认识敌人的变化。
有什么想法吗?
最佳答案
其实你可以尝试使用visualvm + 它的 threads monitoring plugin .您还可以进行线程转储,查看线程堆栈跟踪及其状态。您也可以使用 jconsole来检测死锁。这两个工具都是 JDK 的一部分。
Here是关于使用 visualvm 进行线程分析的更多信息。
关于java - 从正在运行的程序或 Java 中的转储中获取死锁检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8126711/