调试断点在Eclipse中不工作

问题描述:

我想在eclipse调试JUnit测试,但我的断点不发射(除非他们是在第一或第二线)。调试断点在Eclipse中不工作

我试图删除并重新创建所有断点在工作区中,清洁工程,创建一个新的调试配置,并单独运行测试方法,并与其他方法的测试类的一部分。但是都没有用:-(

public void testLoadPatientsAndConvertToBeans() throws IOException, CDataGridException { 
    File file = fileutil.getFileFromPrefsOrPrompt(basefileDef); 

    CDataBuilder builder = new CDataDelimitedFileBuilder(file, 
    CDataDelimitedFileBuilder.DelimiterSettings.WINDOWS_CSV, 
    basefileDef); 

    // breakpoints placed on lines from here on do not fire 

    CDataCacheContainer container = 
    cacheIO.construct(
    new CDataNarrower(
     cacheIO.construct(builder) 
    ).setConvertMissing(true)); 

    assertEquals(13548, container.size()); 

    cacheIO.export(container, patients); 

    Collection<Patient> pBeans = patients.getBeans(); 

    assertEquals(container.size(), pBeans.size()); 

    Patient patient = pBeans.iterator().next(); 
    Map props = patient.getPropertyMap(); 

    System.out.println(props); 
} 

如果您使用的是Sun JDK 6 Update 14,则可能会发生这种情况。请参阅其他similar SO question here。在这种情况下可能的解决方法是使用Sun JDK 6更新16.

+0

升级到Sun JRE 6 Update 16的确有窍门。谢谢Vineet。 – tukushan 2009-10-02 03:28:46

+0

不幸的是,我得到“投票太老,无法更改,除非答案被编辑”,并且无法赞成这一点。你可以编辑,然后我会吗? – tukushan 2009-10-02 03:30:33

+0

+1,@tukushan你现在应该可以投票给它,如果你还没有 – 2009-10-02 07:55:48

我的第一直觉是,在Eclipse中缓存类是与你的代码同步。然而,鉴于你已经尝试清洁/重建项目,它应该有固定的。因为你可以在第一/第二行放置一个断点,所以当你单步执行代码时会发生什么?代码是否与每个步骤一致?如果没有,它会显示eclipse与源代码有不同的类版本。如果它们是相同的,我会尝试下载一个新的eclipse副本(我认为你已经尝试重新启动你的eclipse),因为你可能发现了一个奇怪的bug(新版本可能修复了它或者清除了一些陈旧的数据)。我不能有任何更多的帮助。

+0

的代码并逐步和对齐。谢谢奥斯卡。 – tukushan 2009-10-02 03:26:53