我有一块正在运行的Java软件,被卡住了。我想了解一下内部,但不知道该怎么做。
有没有可以给我PID的工具,它可以告诉我当前每个线程的位置以及变量的一些值?我正在运行linux。
我或多或少知道是什么引起了问题,但是仍然有一些可能的情况,因此查明它会很好。
我无法重现该错误,因为它仅每隔几天出现一次,而在调试时从未出现过,所以这是认识敌人的独特变化。
有任何想法吗?
最佳答案
实际上,您可以尝试使用visualvm及其threads monitoring plugin。您还可以进行线程转储,查看线程堆栈跟踪及其状态。您还可以使用jconsole检测死锁。这两个工具都是JDK的一部分。
Here是有关使用visualvm进行线程分析的更多信息。