如何在ECLIPSE中调试.class文件?

我正在使用Eclipse 3.5,并将src.zip附加到Eclipse中的全局设置。 Windows – >首选项 – > Java – >已安装的JRE – > rt.jar – 源附件 – ….. / jdk / src.zip

我成功地介入了java核心库.class文件并查看了源代码。 我构建了一个使用LinkedList的类,我在LinkedList类中设置了一个断点。

当我调试源代码中的断点(我的项目)工作正常但是当我需要进入java核心库.classes时,我在Eclipse中遇到以下错误 日食错误

由于缺少行号属性,无法在java.util.LinkedList中安装断点。 修改编译器选项以生成行号属性。

我检查了首选项中的编译器设置,发现所有选项都选中了。 在此处输入图像描述 如果有人可以帮我解决这个问题,那就太好了。

提前致谢。

您可能将编译器设置为在您的类文件中包含调试信息,但是rt.jar中的类文件不是以这种方式编译的。 您需要重新编译rt.jar中的类的所有源代码(不适合胆小的人),或者下载jdk的调试版本 。

此博客文章提供了要检查的全面点列表

如果使用Eclipse IDE进行编译,请按照步骤操作

在此处输入图像描述

  1. 转到windows > preferences > Java > compiler屏幕。
  2. 确保选中向生成的文件添加行号属性(由调试器使用)复选框。
  3. 再次构建并尝试添加断点啊希望它应该适合你。

ant构建的注释

如果使用ANT实用程序进行编译,请按照以下步骤操作:

  1. 检查build.xml文件并确保在javac任务中将debug属性设置为true
  2. 此外,如果您使用JBoss作为应用服务器,请确保您已经为远程机器连接的套接字绑定打开了一个端口。 如果没有,那么只需确保C:/jboss/bin/run.bat有一个条目:
    set JAVA_OPTS=%JAVA_OPTS% -Xdebug –Xrunjdwp:transport=dt_socket,address=5000,server=y,suspend=n ”,用于打开端口5000以侦听调试/远程Java应用程序的所有套接字连接。
  3. 再次构建并尝试添加断点啊希望它应该适合你。

您不应该使用附加了JDR src的JRE,因为JRE类不适合调试。

让Eclipse搜索Java环境,然后从结果列表中选择JDK。 这个Java环境将正确附加src.zip,您应该能够进行调查。

请注意,即使JDK类也没有完整的调试信息,因此您无法看到局部变量等。

(另外,“编译器设置”面板仅适用于您的代码。预生成JRE类,面板不会影响它们)。