我最近设置了 Eclipse 调试来开发 Bukkit 插件。能够看到哪些变量正在变化以及哪些断点发生变化真是太棒了,但我主要担心的是,当使用连接到我的测试 Minecraft 服务器的客户端进行调试时,它们会超时。这是因为 Eclipse 在遇到断点时会暂停服务器主线程并在 30 秒后使客户端超时。我已将服务器设置为 60 秒后不会关闭,但客户端总是断开连接。是否有客户端选项来设置超时期限?或者它是否嵌入到 TCP 数据包的工作方式中? - 或者只是另一种解决方法?
我知道这是 3 年多后的事了,但我自己一直在努力解决这个问题(尽管使用 Intellij Idea 而不是 Eclipse),并且我找到了解决方案,我将在此处发布该解决方案,以防其他人遇到此问题。由于 readTimeout 的行为不符合我的预期,我所做的如下:
a) 在客户端设置超时:
b) 在服务器端设置超时:
c)瞧!只要您愿意,就可以享受调试的乐趣!
正如@Draco18s 所指出的,您需要在遇到断点时暂停所有线程,以防止客户端超时。
为此,请单击窗口,然后单击首选项。导航至左侧的
Java > Debug
,然后将 Default suspend policy for new breakpoints
设置从 Suspend Thread
更改为 Suspend VM
。