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 into
, F6 step over
和F7 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式,并在调用的方法中的下一个可执行行处挂起执行。
跳过当前选定的行被执行并挂起到下一个可执行行。