我想调试一个(Java)程序的整个流程。我看到有几个选项可以单步执行我的程序。step is和step over之间的区别是什么
发布于 2010-08-27 10:04:16
考虑下面的代码,当前指令指针(下一步要执行的行,由->
指示)位于g()
中的f(x)
行,已被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); //
f(1); // <----------------------------------- STEP OVER
}
public static void main (String args[]) {
g(2);
g(3); // <----------------------------------- STEP OUT OF
}
}
如果您要在此时单步执行,您将转到f()
中的println()
行,单步执行函数调用。
如果您在这一点上单步执行,您将移动到g()
中的f(1)
行,单步执行函数调用。
调试器的另一个有用功能是步出或步回。在这种情况下,步骤返回基本上会让你遍历当前函数,直到你返回一个级别。换句话说,它将遍历f(x)
和f(1)
,然后返回到调用函数,最终在main()
中的g(3)
结束。
发布于 2010-08-27 09:30:56
step into将深入研究方法调用
跳过将只执行该行并转到下一行
https://stackoverflow.com/questions/3580715
复制相似问题