如何在Eclipse中调试时修复断点错误?

时间:2013-12-03 06:21:00

标签: java eclipse debugging breakpoints

需要调试JAR文件“ProA”,因此导入项目中的源代码, 但是在尝试设置断点时Eclipse中存在一个奇怪的错误。 详情如下:

Unable to install breakpoint due to missing line number attributes.
Modify compiler options to generate line number attributes.

我尝试了几种方法来解决,但失败了。

  1. Window>下偏好:Java>编译器>类文件生成,所有选项必须为True
  2. 在项目的.settings文件夹中,查找名为org.eclipse.jdt.core.prefs的文件。验证或设置org.eclipse.jdt.core.compiler.debug.lineNumber=generate
  3. debug=true中添加build.xml标记,如下所示:<javac srcdir="./src/java" destdir="./bin" debug="true">
  4. 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,但阅读你的帖子帮助我解决了我的问题。我更改了org.eclipse.jdt.core.prefs如下:

<强> BEFORE:

eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.7

<强> AFTER:

eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.7

在Project&gt;中修改这些选项的另一种方法性状&gt; Java编译器。因此,无需手动修改org.eclipse.jdt.core.prefs文件。在那里,您需要确保选中 Classfile Generation 选项。

答案 1 :(得分:0)

在JAR中,编译的字节码中缺少行号属性。使用添加的源代码 Eclipse知道行号,但不是执行字节码的Java VM 并且看不到源代码。

如果Eclipse告诉Java VM停在特定的行,那将是没用的,因为Java VM不知道哪个命令在哪一行,所以何时停止。

唯一的解决方案是重新创建JAR 或至少字节码(.class文件)包含您想要的类的行信息设置断点。

答案 2 :(得分:0)

****窗口->首选项->编译器**** 为了进行调试,我们需要在类文件中生成行号。 选择“将行号属性添加到生成的类文件(供调试器使用)”后,重建项目并运行调试器以查看行号和断点以及执行指针。 enter image description here