Eclipse SWING应用程序:仅在抛出未捕获的异常后才会触发断点

时间:2009-06-22 12:42:29

标签: java eclipse debugging swing

我有一个非常奇怪的问题。 我正在Eclipse中使用Java SWING应用程序。我在代码中的某处设置了一个断点,然后运行调试。我执行包含断点的代码段,但总是跳过它。 一旦我运行了一些抛出未捕获异常的代码,断点就会再次被触发,而不会改变其他任何东西。抛出异常的代码和包含断点的代码不相关。

我尝试在几个地方设置断点,但在抛出异常之前它们永远不会被击中。 我只针对这个特定的应用程序有这个问题。我的调试器适用于其他SWING应用程序。

你能想出造成这种情况的原因吗?

2 个答案:

答案 0 :(得分:7)

你正在运行什么样的eclipse和Java版本?

您知道this question吗? (bug 279137:断点无法在JDK 1.6.0_14下击中


正如评论中的gojomo评论所述,该错误(279137)现在(2009年7月21日)提到:

  

现在可以在防晒数据库中看到该错误: bug 6862295

     

我们列出了此问题的解决方法,可在我们调查错误修复程序时使用。

     

解决方法

     

使用 -XX:+UseParallelGC 选项可以使客户端虚拟机或服务器虚拟机无法重现失败。

(选项哟添加到eclipse.ini

  

我建议您使用“观看此错误”功能,以便在有错误更新时通知您。以下是观看此 specific bug

的链接

固定

正如release note of the jdk6_u16(2009年8月下旬)提到的,该错误已得到修复

  

此版本中修复了错误:

     

6862295 JDWP threadid在调试会话期间发生更改(导致忽略断点)

答案 1 :(得分:0)

您是否已在单独的线程中启动GUI?我不认识你的特殊问题,但是一旦我开始使用java教程中的代码,很多奇怪的问题都消失了:

SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        createAndShowGUI();
    }
});