我有一个奇怪的问题,我以前从未遇到过,在Eclipse中进行调试。在调试时,当我打破新代码时,函数中的变量不会显示在“变量”窗口中。显示的那些只是作为参数传递给函数的那些,它们显示为arg(0),arg(1)等,而不是它们的名称。当我想观察或检查函数中的变量时,我收到消息“这样且无法解决”。一些事实: 1.当我在调试堆栈中查看并查看其他函数时,变量会正确显示 2.调试运行与我编写的代码同步 我工作的项目是使用外部工具(使用ant)编译的。我的同事都没有遇到过这样的问题,尽管他们都使用外部工具进行编译。 4.日食是3.2.1版本
答案 0 :(得分:6)
如果您在没有-g
选项的情况下编译代码,这是一种典型的行为。
在eclipse中:右键单击Project,从上下文菜单和“Java Compiler”中选择“Properties”。检查是否启用了“项目特定设置”。
如果已启用,请检查是否选中了下方区域中的所有复选框,尤其是“添加变量属性以生成类文件”。
如果此复选框已启用但未选中,请选中它(按应用),如果未启用未选中,请选择“配置工作区设置”并全局启用缺少的功能(我的建议)。
外部工具 - javac
命令需要-g
选项。默认行为(no -g)没有本地变量信息。 (Reference)
答案 1 :(得分:1)
确保在运行代码之前打开“Debug Perspective”。这一次为我解决了类似的问题。
答案 2 :(得分:0)
看起来您在编译期间丢弃了调试信息。检查Ant-Task的命令行参数。
答案 3 :(得分:-1)
另外几件事。
答案 4 :(得分:-1)
使用ant进行编译时,请确保将这些说明传递给javac选项。
javac **debug="true" debuglevel="lines,vars,source"** target="1.6" source="1.6" srcdir="${project.src.dir}" destdir="${project.build.dir}" classpathref="classpath">