我有一个非常奇怪的问题。 我正在Eclipse中使用Java SWING应用程序。我在代码中的某处设置了一个断点,然后运行调试。我执行包含断点的代码段,但总是跳过它。 一旦我运行了一些抛出未捕获异常的代码,断点就会再次被触发,而不会改变其他任何东西。抛出异常的代码和包含断点的代码不相关。
我尝试在几个地方设置断点,但在抛出异常之前它们永远不会被击中。 我只针对这个特定的应用程序有这个问题。我的调试器适用于其他SWING应用程序。
你能想出造成这种情况的原因吗?
答案 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();
}
});