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