Eclipsedebugging器中的Step Into和Step Over之间有什么区别?

我想debugging一个Java程序的整个stream程。 eclipse中的F5 (step into)和F6 (step over)有什么区别?

考虑下面的代码与你当前的指令指针(将被执行的行)在f(x); g(2)行,被main()g(2)行调用:

 public class testprog { static void f (int x) { System.out.println ("num is " + (x+0)); // <- step into } static void g (int x) { -> f(x); // <----------------------------------- current location f(1); // <----------------------------------- step over } public static void main (String args[]) { g(2); g(3); // <----------------------------------- step out of } } 

如果您在这一点上进入 ,您将移动到f()println()行,进入函数调用。

如果在这一点上你要走了,你会转到f(1);g() ,逐行调用函数。

debugging器的另一个有用的function是退出退出 。 在这种情况下,一个步骤返回将基本上运行你通过当前的function,直到你回到一个级别。 换句话说,它将穿过f(x)f(1) ,然后返回到调用函数以g(3);main()

日食(至less欧罗巴,这是我目前唯一的一个方便)使用F5 step intoF6 step overF7 step return

在debugging代码行时,通常情况如下:

  • 步入 )一个方法即将被调用,并且您想要debugging该方法的代码,所以下一步是进入该方法并继续逐步debugging。
  • Step Over )一个方法即将被调用,但是你不想debugging这个特定的调用,所以你希望debugging器完成一个完整的步骤来执行这个方法。
  • Step Return )你已经完成了这个方法的debugging,你只是希望debugging器运行整个方法,直到它作为一个完整的步骤返回。
  • 恢复 )您希望debugging器恢复“正常”执行而不是逐步执行
  • Line Breakpoint )你不关心它是如何到达那里的,但是如果执行到达特定的代码行,你希望debugging器暂时暂停执行,所以你可以决定怎么做。

Eclipse具有其他高级debuggingfunction,但这些是基本的基础知识。

也可以看看

  • 免费video教程:Eclipse和Java:使用debugging器
  • IBM / DeveloperWorks /使用Eclipse平台进行debugging
  • IBM / DeveloperWorks /了解debugging的要点

步入将要深入的方法调用
一步到位将执行该行并转到下一行

您不能通过使用该步骤来详细了解该方法。 如果您想跳过当前行,您可以使用跳过,那么您只需按一次F6即可移动到下一行。 如果你认为这个方法有问题,用F5来检查细节。

Step Into调用当前选定行中的下一个expression式,并在调用的方法中的下一个可执行行处挂起执行。

跳过当前选定的行被执行并挂起到下一个可执行行。