java IntelliJ调试器卡住了
我正在调试一个普通的Java应用程序,没有GUI,只是在出现问题时对主线程进行大量计算和~5次堆栈调用。基本上,它一直在局部变量表中显示“收集数据”
因此,我尝试在按下“恢复”键后立即添加断点,而不是一步一步地进行。现在它说“等待最后一个调试器命令完成”。
以前有人有过这个问题吗?更改调试器是解决此问题的唯一方法吗
你可以在下面搜索框中键入要查询的问题!
我正在调试一个普通的Java应用程序,没有GUI,只是在出现问题时对主线程进行大量计算和~5次堆栈调用。基本上,它一直在局部变量表中显示“收集数据”
因此,我尝试在按下“恢复”键后立即添加断点,而不是一步一步地进行。现在它说“等待最后一个调试器命令完成”。
以前有人有过这个问题吗?更改调试器是解决此问题的唯一方法吗
# 1 楼答案
我曾经遇到过一次(版本2020.3.3)和“使缓存失效”并重新启动解决了它
# 2 楼答案
以下内容为我在IntelliJ 2018.2.4上修复:
如果您确实需要挂起所有线程进行调试,这将没有帮助,但它消除了“收集数据…”和“等待最后一个调试器命令完成”消息。该设置还将持续用于后续断点,因此您只需更改一次
# 3 楼答案
在大多数情况下,这是因为调试时添加了手表。 清除将导致递归执行与代码中相同语句的watch语句。 调试前,务必保持手表清洁
# 4 楼答案
在IntelliJ(2017.1.4社区版)上,以下内容为我解决了这个问题:
重新运行调试器
# 5 楼答案
对我有效的修复方法是删除方法断点。这使它变得超快
# 6 楼答案
我刚刚遇到了同样的问题。在我的例子中,它是断点堆栈跟踪中的一个类(KafkaStream),具有“bad”
toString
方法。toString
方法阻塞并因此挂起调试器。我在主线代码中测试了toString
方法,它挂起了主线程(即,这不是特定于调试器的问题)以下是命中断点的线程的堆栈跟踪(在一行上,该行刚刚尝试测试我的类的布尔属性):
Intellij提供了一种解决我的问题的方法。它允许您重写调试器呈现类的方式:
如果您的问题再次出现,我建议进行线程转储(在IDE内部或外部),并查看您的线程正在做什么