我正在调试一个普通的Java应用程序,没有GUI,只是大量的计算和~5次调用栈中的主线程时出现的问题。基本上它一直说“收集数据”在本地变量手表。
所以我没有一步一步地尝试在按下“Resume”后立即添加断点。现在它显示“Waiting until last debugger command completed”。
以前有人遇到过这个问题吗?更改调试器是解决这个问题的唯一方法吗?
relj7zay1#
在IntelliJ(2017.1.4社区版)上,以下内容为我修复了该问题:
重新运行调试器。
slhcrj9b2#
以下内容在IntelliJ 2018.2.4上为我修复了它:
如果您实际上需要挂起所有线程以进行调试,这将不会有帮助,但它为我消除了“正在收集数据...”和“等待直到最后一个调试器命令完成”消息。该设置在后续断点也会保持,因此您只需要更改一次。
yi0zb3m43#
我刚刚遇到了类似的问题。在我的例子中,断点堆栈跟踪中的类(KafkaStream)使用了“坏”toString方法。toString方法阻塞,因此挂起了调试器。我在主代码中测试了toString方法,它挂起了主线程(即,这不是调试器特定的问题)。下面是命中断点的线程的堆栈跟踪(在试图测试类的布尔属性的行上):
toString
Intellij提供了一种解决我的问题的方法,它允许你重写调试器呈现类的方式:
如果您的问题再次出现,我建议进行线程转储(IDE内部或外部),看看您的线程正在做什么。
n1bvdmb64#
在大多数情况下,这可能是由于您在调试时添加了监视。请清除可能导致递归执行代码中相同语句的监视语句。在调试之前,请始终保持监视的清洁。
2eafrhcq5#
我曾经遇到过这种情况(在版本2020.3.3上),“使缓存无效”和重新启动解决了它。
wfauudbj6#
在我的例子中,这是因为一个gradle守护进程卡住了,即使在运行./gradlew --stop时也没有停止,所以我运行了以下命令来终止所有gradle守护进程并修复这个问题。
./gradlew --stop
ps aux | grep GradleDaemon | awk '{print $2}' | xargs kill -9
628mspwn7#
对我有效的修复是删除方法断点。这使它变得超快。
7条答案
按热度按时间relj7zay1#
在IntelliJ(2017.1.4社区版)上,以下内容为我修复了该问题:
*取消选中该框
重新运行调试器。
slhcrj9b2#
以下内容在IntelliJ 2018.2.4上为我修复了它:
如果您实际上需要挂起所有线程以进行调试,这将不会有帮助,但它为我消除了“正在收集数据...”和“等待直到最后一个调试器命令完成”消息。该设置在后续断点也会保持,因此您只需要更改一次。
yi0zb3m43#
我刚刚遇到了类似的问题。在我的例子中,断点堆栈跟踪中的类(KafkaStream)使用了“坏”
toString
方法。toString
方法阻塞,因此挂起了调试器。我在主代码中测试了toString
方法,它挂起了主线程(即,这不是调试器特定的问题)。下面是命中断点的线程的堆栈跟踪(在试图测试类的布尔属性的行上):
Intellij提供了一种解决我的问题的方法,它允许你重写调试器呈现类的方式:
如果您的问题再次出现,我建议进行线程转储(IDE内部或外部),看看您的线程正在做什么。
n1bvdmb64#
在大多数情况下,这可能是由于您在调试时添加了监视。请清除可能导致递归执行代码中相同语句的监视语句。在调试之前,请始终保持监视的清洁。
2eafrhcq5#
我曾经遇到过这种情况(在版本2020.3.3上),“使缓存无效”和重新启动解决了它。
wfauudbj6#
在我的例子中,这是因为一个gradle守护进程卡住了,即使在运行
./gradlew --stop
时也没有停止,所以我运行了以下命令来终止所有gradle守护进程并修复这个问题。628mspwn7#
对我有效的修复是删除方法断点。这使它变得超快。