Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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 Eclipse:调试&;检查变量会导致com.sun.jdi.ObjectCollectedException_Java_Eclipse_Debugging - Fatal编程技术网

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:对我有效,但我不明白为什么?注意:右键单击的变量必须是集合而不是对象。