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

时间:2011-03-13 08:51:47

标签: java eclipse compiler-construction debugging

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

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

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

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

我在偏好设置中检查了我的编译器设置,发现所有选项都选中了。 enter image description here 如果有人可以帮我解决这个问题,那就太好了。

提前致谢。

3 个答案:

答案 0 :(得分:7)

您可能将编译器设置为在您的类文件中包含调试信息,但是rt.jar中的类文件不是以这种方式编译的。您需要重新编译rt.jar中的类的所有源(不适合胆小的人)或download a debug build of the jdk

答案 1 :(得分:2)

blog posts提供了一个完整的检查点列表

  

如果使用Eclipse IDE进行编译,请执行以下步骤

enter image description here

  
      
  1. 转到windows > preferences > Java > compiler屏幕。
  2.   
  3. 确保选中为生成的文件添加行号属性(由调试器使用)复选框。
  4.   
  5. 再次构建并尝试添加断点并希望它能为您服务。
  6.   

蚂蚁构建的注释

  

如果使用ANT实用程序进行编译,请执行以下步骤:

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

答案 2 :(得分:2)

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

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

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

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