Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.eclipse.jdi.TimeOutException_Java_Eclipse - Fatal编程技术网

Java org.eclipse.jdi.TimeOutException

Java org.eclipse.jdi.TimeOutException,java,eclipse,Java,Eclipse,调试时,我遇到此eclipse错误: org.eclipse.jdi.TimeOutException: Timeout occurred while waiting for packet 220 occurred creating step request. 我在谷歌上搜索了一下,也在stackoverflow上查看了一下,但没有找到任何解决方案。我在MacOSX上工作,使用的是EclipseKepler,但在Windows7上使用EclipseMars时,我遇到了相同的错误。我使用的是Ja

调试时,我遇到此eclipse错误:

org.eclipse.jdi.TimeOutException: Timeout occurred while waiting for packet 220 occurred creating step request.

我在谷歌上搜索了一下,也在stackoverflow上查看了一下,但没有找到任何解决方案。我在MacOSX上工作,使用的是EclipseKepler,但在Windows7上使用EclipseMars时,我遇到了相同的错误。我使用的是Java 1.8.0_25,64位服务器虚拟机(build 25.25-b02,混合模式)

这个问题似乎已经在以下网站上提到:

出现此问题的原因似乎是tick[producer]线程不能很好地使用调试器

这表明当您有两个线程(一个生产者线程和一个消费者线程)并且试图挂起消费者线程时,调试器会出现问题

解决办法:

如果您放置了一个断点来暂停tick线程,那么您可以很好地单步执行这两个测试线程

这建议您应该在生产者线程(而不是使用者线程)内设置断点。显然,在使用者线程上放置断点时发生超时,并且在两个线程上放置断点会导致
非法状态异常

我希望这有帮助


其思想是阻止生产者线程,这迫使消费者线程等待(假设它在等待数据时被阻止,而不是轮询)。然后,您可以恢复生产者线程,这将恢复消费者线程的“勾号”。生产者线程返回等待状态

显然,正如找到解决方法的人所建议的那样,需要两个周期来表示1个“滴答声”:

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


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


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

请至少提供运行eclipse的eclipse版本和VM版本,以及正在调试的目标的VM版本。堆栈跟踪也很好。我更新了问题。Eclipse只是冻结,没有崩溃。所以我没有任何堆栈跟踪。谢谢!但我并没有完全理解它,所以你是说我把断点放在生产者线程中,一直到消费者线程,对吗?但是我想在消费者线程中调试代码,我该怎么做?我试着按照你的建议从制作人线程开始,逐步到消费者,但仍然得到相同的错误。@Lanc我已经更新了我的答案:)如果你仍然有问题,我将尝试在明天回家(圣诞节出城)后重现这个问题。是否可以更新您的Java?最新版本是8u66,它附带了一些并发补丁。目前不确定这是否与您的问题相关-我回家后会确认谢谢@Vince I将我的Java更新为8u66,但没有多大帮助。我仍然不明白如何阻止生产者线程的滴答声。好的,再见…圣诞快乐!!