首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >org.eclipse.jdi.TimeOutException

org.eclipse.jdi.TimeOutException
EN

Stack Overflow用户
提问于 2015-12-25 19:23:35
回答 2查看 6.5K关注 0票数 2

调试时,我正面临此eclipse错误:

代码语言:javascript
复制
org.eclipse.jdi.TimeOutException: Timeout occurred while waiting for packet 220 occurred creating step request.

我在googled上搜索了一些,并且在堆栈溢出时也检查了它,但是没有找到任何解决方案。我正在使用Mac OSx并使用Eclipse,但在Windows7上使用EclipseMars时也会出现同样的错误。我使用的是Java 1.8.0_25,64位服务器VM (构建25.25-b02,混合模式)

EN

回答 2

Stack Overflow用户

发布于 2016-03-11 17:41:54

在调试多线程程序代码时,我也遇到了相同的eclipse错误。减少了断点的数量,使我可以在没有任何错误的情况下调试代码。我认为在eclipse (w.r.t堆栈内存)中放置调试/监视点是有一定限制的。

增加Java堆栈大小可能是另一种解决方案。信息可以找到这里

票数 3
EN

Stack Overflow用户

发布于 2015-12-25 20:24:52

看来这个问题已经在Google代码论坛上提过了。

出现此问题似乎是因为刻度生成器线程对调试器没有很好的作用。

这表明,当您有两个线程(一个生产者线程和一个使用者线程)并且尝试挂起使用者线程时,调试器就会出现问题。

解决办法:

如果您放置一个断点来暂停勾选线程,那么您可以很好地通过这两个测试线程。

这建议您应该在生产者线程(而不是使用者线程)中设置一个断点。实际上,当在使用者线程上放置断点时,超时发生了,并且在两个线程上放置一个断点会导致IllegalStateException

我希望这能帮到你!

这样做的目的是阻止生产者线程,这迫使使用者线程等待(假设它在等待数据时被阻塞,而不是轮询)。然后,您可以继续生产者线程,该线程恢复“滴答”的使用者线程。生产者线程回到等待状态。

显然,正如找到解决办法的人所建议的那样,这些循环中的两个周期代表了一个“滴答”:

当它们都被阻塞等待滴答时,您可以释放滴答线程,直到其中一个测试线程被释放,然后让滴答线程再次被阻塞,直到需要下一个滴答。似乎需要两个周期的蜱线前进一个滴答。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34465693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档