Java 为什么我的Eclipse调试器第一次未能进入?
我是Java新手,正在学习在Eclipse中调试。我遇到了一个奇怪的错误,调试器第一次未能进入函数,但第二次成功进入函数。具体来说,以下是我的步骤Java 为什么我的Eclipse调试器第一次未能进入?,java,eclipse,Java,Eclipse,我是Java新手,正在学习在Eclipse中调试。我遇到了一个奇怪的错误,调试器第一次未能进入函数,但第二次成功进入函数。具体来说,以下是我的步骤 跳过,直到我达到我想要检查的功能 进入函数。下面是我遇到错误“找不到源”的时候 步进返回。调试器成功返回到上面的上一个堆栈帧 再次进入函数。奇怪的是,这一次你要开始工作了 有什么不对劲?为什么需要两个“步骤”来检查我想要的函数?当一行上有两条语句,而内部语句没有源代码(例如基本JRE)时,可能会发生这种情况 在这一行中,进入的第一步将进入内部对象上的
有什么不对劲?为什么需要两个“步骤”来检查我想要的函数?当一行上有两条语句,而内部语句没有源代码(例如基本JRE)时,可能会发生这种情况 在这一行中,进入的第一步将进入内部对象上的toString()方法(可能没有可用的源代码),进入的第二步将进入您自己的方法(将有代码)
解决这个问题的方法(如果它发生在常规Java运行时类中)是为您的项目使用一个而不是一个JRE,并遵循良好的编码实践,将内部语句移动到一个变量中,以便每行只做一件事(优化器应确保这样做不会导致性能损失).如果您有这样的线路:
func1(obj.func2());
调试器进入obj.func2()的第一步
如果它是第三方源代码或java src,并且您使用jre,您可能会错过此源代码,eclipse将无法附加源代码进行调试(使用maven!=)
在下一步“进入”中,您将进入func1我不记得为什么会发生这种情况,但我可以向您保证这是很常见的:)我认为构建路径有一些问题
func1(obj.func2());