为什么我的Eclipse调试器第一次无法进入?

时间:2012-05-15 15:05:19

标签: java eclipse

我是Java的新手并且学习在Eclipse中进行调试。我得到一个奇怪的错误,其中调试器第一次无法进入函数,但第二次成功完成。具体来说,这是我的步骤。

  1. 一直走到我想要的功能进行检查。
  2. 进入功能。这是我遇到错误“未找到来源。”
  3. 退一步。调试器成功返回上面的上一个堆栈帧。
  4. 再次进入该功能。奇怪的是,这一次步入作品。
  5. 什么可能出错?为什么需要两个“步骤”来检查我想要的功能?

2 个答案:

答案 0 :(得分:1)

当一行上有两个语句,并且内部语句没有源代码(例如一个简单的JRE)时,就会发生这种情况。

myObject.myMethod(someObject.toString());

在这一行中,第一步,将进入内部对象的toString()方法(可能没有可用的源),第二步将进入你自己的方法(为此将进行是代码)。

解决此问题的方法(如果正常的Java运行时类正在发生)是为项目而不是JRE使用full JDK并遵循良好的编码习惯并将内部语句移动到变量中每行都完成一件事(优化器应该确保这样做没有性能损失)。

答案 1 :(得分:1)

你有这样的行:

func1(obj.func2());

调试器第一步进入obj.func2() 如果它是第三方源或java src并且你使用jre,你可能会错过这个源代码,eclipse将无法附加源用于debuging(使用maven!=))。

在下一个'步入'中你将进入func1