Eclipse条件断点不起作用

Mar*_*lov 9 java eclipse java-8

我遇到的问题是条件断点在我的电脑上不起作用.我使用以下代码:

package test;

public class Main {

    public static class C1 {
        public static C1 c = new C1();

        public Boolean b = null;

        private boolean isB() {
            if (b == null) {
                b = Boolean.TRUE;
            }
            return b; //USE BREAKPOINT HERE
        }
    }

    public static void main(String[] args) throws Exception {
        Thread[] threads = new Thread[100];
        for (int i = 0; i < 100; i++) {
            Thread t = new Thread(new Runnable() {
                public void run() {
                    C1.c.isB();
                }
            });
            threads[i] = t;
        }
        for (Thread t : threads) {
           t.start();
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

条件断点设置为"return b;" 行并使用"Boolean.TRUE.equals(b)"条件.我在没有任何插件的情况下重新安装Eclipse并尝试了不同版本的Java 8,但每次我得到相同的错误时,都会说"条件断点遇到运行时异常.原因:java.lang.InternalError:获取的ReferenceType的MethodID不是ReferenceType发生了检索堆栈帧."

我不使用任何JRebel,DCEVM或一些分析工具.

可能是什么原因?它可能是CPU相关的问题吗?我使用的是英特尔6700K.Windows 10 + JDK8u111 + Neon.1a版本(4.6.1).也不适用于Eclipse Mars.

jef*_*ter 1

日食光子 2018

我已经在 Eclipse Photon 2018 上使用 JDK 8 和 7(均为 64 位)对此进行了测试

版本:Photon 发布 (4.8.0) 内部版本号:20180619-1200

并且断点工作正常。

我怀疑这与您的 JDK 或 Eclipse 版本有关。