java运行时库中的断点(rt.jar)

时间:2012-02-09 09:44:48

标签: java eclipse debugging jvm breakpoints

我们不能在rt.jar的类中设置断点吗?

我正在调试一些东西,我需要在java.sql.DriverManager中放一个断点,但是只要我在某个地方放置一个断点,eclipse会提示我输入消息

Unable to install breakpoint in java.sql.DriverManager due to missing line number attributes. Modify compiler options to generate line number attributes

这是否意味着java运行时类未编译用于调试?如果是,那么为什么会这样做呢。请帮忙!

Edit1:我正在进行远程调试,实际的web应用程序是在linux机器上的tomcat中运行的,我在windows机器上。哪个rt.jar是这里的罪魁祸首,我的机器上的那个还是远程机器上的那个? rt.jar是否可能不使用行号和其他有用的信息进行编译?

Edit2:此问题的答案包含详细信息Locally declared variables can not be inspected 任何人都知道为什么没有调试符号编译它?它如何影响保留一些元数据的性能,还是其他什么?

2 个答案:

答案 0 :(得分:3)

如果未使用调试开关(-g)编译类,则无法在特定行上设置断点。

但是,您仍然可以在方法上设置断点(在eclipse中:在定义方法的第一行上设置断点),即使这些类没有编译用于调试。

您很可能无法访问本地变量,并且您没有看到您在代码中单步执行的行。这使调试变得更加困难,但是你仍然可以看到发生了什么(例如检查方法参数值),特别是如果你知道底层的源代码。

但我想知道你的rt.jar没有编译调试信息。

答案 1 :(得分:0)

这是一个日食环境。由错误消息清楚 在Classfiel Generation中检查第二个选项

转到偏好设置 2nd Option checked in Classfiel Generation