在尝试设置断点时,我在Eclipse中得到这个奇怪的错误。

Unable to insert breakpoint Absent Line Number Information

我勾选了编译器选项的复选框,但运气不好。


当前回答

从Spring AOP得到这个消息(似乎来自CGLIB库)。点击忽略似乎工作正常,我仍然可以调试。

其他回答

当我用@ManagedBean (javax.annotation.ManagedBean)注释类时,我发现了这个问题。在JBoss EAP 6.2.0上运行新编译的应用程序时出现警告消息。忽略它并继续运行并没有帮助——断点从未到达。

我在JSF页面中使用EL调用该bean。现在…@ManagedBean可能不适合(我是CDI的新手)。当我将注释更改为@Model时,bean执行了,但断点警告也消失了,我像预期的那样击中了断点。

总之,看起来@ManagedBean注释弄乱了行号,不管它是否使用了错误的注释。

检查/做以下事情:

1)在“窗口—>首选项—> Java—>编译器—>类文件生成”下,所有选项必须为True:

(1) Add variable attributes...
(2) Add line number attributes...
(3) Add source file name...
(4) Preserve unused (never read) local variables

2)在项目的.settings文件夹中,找到一个名为org.eclipse.jdt.core.prefs的文件。 验证或设置org.eclipse.jdt.core.compiler.debug.lineNumber=generate

3)如果仍然出现错误窗口,单击复选框不显示错误信息。

4)清洁和建造项目。开始调试。

正常情况下,错误窗口不再显示,调试信息显示正确。

我在试图从Eclipse以调试模式启动Tomcat时遇到了这个问题。我有一个ANT构建文件负责编译和部署。在将调试标志设置为true(如其他答案所述)并重新部署应用程序后,它可以正常工作:

<javac srcdir="./src/java" destdir="./bin" debug="true">

注意:如果您刚刚添加了调试标志并重新编译,那么仍然需要将应用程序重新部署到服务器,因为Eclipse就是在服务器上调试类文件的。很明显,但很容易花一个小时左右的时间挠头,想知道为什么它不管用(相信我)。

我也遇到过这个问题。我正在使用一个蚂蚁构建脚本。我正在开发一个遗留应用程序,所以我使用的是jdk版本1.4.2。这个方法曾经有用,所以我开始四处寻找。我注意到在JRE选项卡上的Debug配置下,Java的版本被设置为1.7。一旦我把它改回1.4,它就工作了。

我希望这能有所帮助。

这招对我很管用:

在窗口——>首选项——> Java——>编译器——>类文件生成下,所有选项都必须为True。 在build.xml <javac>任务中使debug="true"。 通过ant生成的war在tomcat中部署应用程序 在Debug模式下重新启动Tomcat