繁体   English   中英

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

[英]Breakpoint in java runtime libraries (rt.jar)

我们不能在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:这个问题的答案有详细信息, 无法检查本地声明的变量任何人都知道为什么在没有调试符号的情况下编译它? 保留一些元数据对性能有什么影响?还是其他?

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

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

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

但我想知道您的rt.jar是否未使用调试信息进行编译。

这是一个日食环境。 通过错误消息也可以清除Classfiel Generation中检查了第二个选项

转到偏好 Classfiel Generation中选中的第二个选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM