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

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

我试图在几个地方设置断点,但在抛出异常之前它们一直没有命中。 我只有这个特定的应用程序有这个问题。 我的调试器适用于其他SWING应用程序。

你能想到造成这种情况的任何原因吗?


你运行的是什么精确版本的eclipse和Java?

你知道这个问题吗? (错误279137:JDK 1.6.0_14下的断点失败)


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

这个bug现在可以在sun bug数据库中看到: bug 6862295

我们列出了这个问题的解决方法,可以在我们调查该错误的修复时使用。

解决问题

使用选项-XX:+UseParallelGC可使故障无法与客户端VM或服务器VM一起重现。

(选项哟添加到eclipse.ini)

我建议你使用'看这个bug'功能,这样当bug出现更新时你可以得到通知。 这里是观看这个特定错误的链接


固定

正如jdk6_u16 (2009年8月下旬)的发布说明所述 ,该错误已得到修复

在此版本中修正的问题:

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


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

SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        createAndShowGUI();
    }
});
链接地址: http://www.djcxy.com/p/90551.html

上一篇: Eclipse SWING app: breakpoint hit only after an uncaught exception is thrown

下一篇: Eclipse 3.5 Unable to install plugins