我想调试Java程序的整个流程。Eclipse中F5(进入)和F6(进入)之间有什么区别?
F5
F6
考虑以下代码,将当前指令指针(将在下一步执行的行,由表示->)放在f(x)in 的行g(),并由g(2)in 的行调用main():
->
f(x)
g()
g(2)
main()
public class testprog { static void f (int x) { System.out.println ("num is " + (x+0)); // <- STEP INTO } static void g (int x) { -> f(x); // f(1); // <----------------------------------- STEP OVER } public static void main (String args[]) { g(2); g(3); // <----------------------------------- STEP OUT OF } }
如果此时要 进入 ,则将移至中的println()行f(),进入函数调用。
println()
f()
如果要在那一步 结束 ,您将移至中的f(1)行g(),从而结束函数调用。
f(1)
调试器的另一个有用功能是单步 退出 或单步 返回。 在这种情况下,单步返回基本上将使您遍历当前函数,直到您返回一个级别。换句话说,它将逐步执行f(x)和f(1),然后返回到调用函数,最后到达g(3)in main()。
g(3)
Eclipse(至少是Europa,这是我目前可以使用的唯一一个)F5用于step into,F6for step over和F7for step return。
step into
step over
F7
step return