当Java调试什么可能导致我的进程挂起

时间:2010-10-08 19:51:20

标签: java debugging intellij-idea blocked

我有一个Java服务器进程,它处理繁重。它会间歇性地停止处理,就像在日志停止时一样,活动停止但过程仍处于活动状态。

我在调试几次时发生了这种情况。当它出现时,我在调试器中点击暂停/中断,这样我就可以检查正在运行的线程并查找停止的原因。但暂停按钮不会像通常那样进入程序,只是坐在那里。我使用IntelliJ IDEA,但我不确定它是IDE还是JVM有问题。

我在问题出现之前尝试进入程序并且它正常工作,进程停止并且我可以检查线程列表。

有谁知道为什么JVM不会响应调试暂停/中断?它如何进入这种情况?我有点卡住了,因为我没有办法诊断这个问题而不能在程序状态被破坏时看到它。导致问题的日志没有问题。

1 个答案:

答案 0 :(得分:1)

您可以与JVisualVM连接吗?你的CPU是100%吗?我们有一个平等的问题。申请被停止了。 JVisualVM已不再连接。使用jstack的线程转储显示所有线程都是stooped(多个线程转储之间没有差异),但VM消耗100%CPU。我们改变了硬件,问题解决了。我们认为这是一个RAM问题,垃圾收集在无限循环中运行。但这只是一种理论。

如果您能解决问题,请更新我。