Java Eclipse:调试&;检查变量会导致com.sun.jdi.ObjectCollectedException
我调试我的程序,并在这里和那里添加一个断点。停止之后,我想检查一些变量,有时会得到一个Java Eclipse:调试&;检查变量会导致com.sun.jdi.ObjectCollectedException,java,eclipse,debugging,Java,Eclipse,Debugging,我调试我的程序,并在这里和那里添加一个断点。停止之后,我想检查一些变量,有时会得到一个com.sun.jdi.ObjectCollectedException。在不同来源中搜索后,我发现最有可能的对象是GarbageCcollected。点击这里和那里,我可以通过在Variables视图中我无法检查变量来检索我的对象 -vmargs -Dosgi.requiredJavaVersion=1.8 -Dosgi.instance.area.default=@user.home/eclipse-wor
com.sun.jdi.ObjectCollectedException
。在不同来源中搜索后,我发现最有可能的对象是GarbageCcollected。点击这里和那里,我可以通过在Variables
视图中我无法检查变量来检索我的对象
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8
-Xms512m
-Xmx4096m
--add-modules=ALL-SYSTEM
我使用OpenJDK1.8.0_151在Linux/OpenSuSe下运行。有没有关于如何避免这种GC问题的提示?这是IDE中的某种设置吗?右键单击变量,然后单击“显示逻辑结构”,取消选中任何集合。当代码在断点处停止执行时:
变量
窗格中的变量您可以添加逻辑结构格式化程序,而不是关闭逻辑结构,如此答案中所述:。这可以防止出现异常,并让您以有用的方式查看变量。此错误已在Eclipse4.18中修复 活动GC变量视图中的稳定逻辑结构 当应用程序的垃圾收集器处于活动状态时显示逻辑结构时,调试视图不再中断(com.sun.jdi.ObjectCollectedException在检索值时发生)
如果对象是垃圾收集的,您在错误的位置检查它,那么该对象在该断点之前是活动的。是的,但是保持编辑器打开一段时间后,无法进一步检查该对象。因此,我假设它的GCedTry this fix:对我有效,但我不明白为什么?注意:右键单击的变量必须是集合而不是对象。