Debugging 在调试器中单步执行和单步执行之间有什么区别

Debugging 在调试器中单步执行和单步执行之间有什么区别,debugging,Debugging,我想调试(Java)程序的整个流程。我看到有几个选项可以单步执行我的程序。单步执行和单步执行之间有什么区别?单步执行将深入研究方法调用 “跳过”将只执行该行并转到下一行,考虑以下代码和当前指令指针(下一行将执行的代码,由->指示),位于g()中的f(x)行,已被g(2)行调用main(): 公共类testprog{ 静态空隙f(int x){ System.out.println(“num是”+(x+0));//f(x)// f(1);//调试代码行时,以下是常见的场景: (单步执行)一个方法

我想调试(Java)程序的整个流程。我看到有几个选项可以单步执行我的程序。单步执行和单步执行之间有什么区别?

单步执行将深入研究方法调用

“跳过”将只执行该行并转到下一行,考虑以下代码和当前指令指针(下一行将执行的代码,由
->
指示),位于
g()
中的
f(x)
行,已被
g(2)
行调用
main()

公共类testprog{
静态空隙f(int x){
System.out.println(“num是”+(x+0));//f(x)//

f(1);//调试代码行时,以下是常见的场景:

  • (单步执行)一个方法即将被调用,您希望调试到该方法的代码中,因此下一步是进入该方法并继续逐步调试
  • (单步执行)即将调用一个方法,但您对调试此特定调用不感兴趣,因此希望调试器作为一个完整的步骤完全执行该方法
  • (Step Return)您已经一步一步地调试完这个方法,您只希望调试器运行整个方法,直到它作为一个完整的步骤返回为止
  • (Resume)您希望调试器恢复“正常”执行,而不是一步一步地执行
  • (行断点)您不关心它是如何到达那里的,但是如果执行到达特定的代码行,您希望调试器暂时暂停那里的执行,以便您可以决定执行什么
Eclipse还有其他高级调试特性,但这些是基本的基础

另见

您无法通过使用步骤来查看该方法的详细信息。 如果要跳过当前行,可以使用“跳过”,然后只需按F6键一次即可移动到下一行。
如果您认为方法中存在错误,请使用F5检查详细信息。

单步执行调用当前选定行上要执行的下一个表达式,并在调用的方法中的下一个可执行行暂停执行


单步执行当前选定的行将被执行并挂起到下一个可执行行。

因此,如果我执行单步执行并且函数包含一些打印语句,打印是否会发生?那么“单步执行”如何?然后返回调用函数,以在
g(3)
中结束@Honey,是的,有一些含糊不清的地方(无论是
g(2)
还是
g(3)
调用当前处于活动状态),所以我在第一段中已经澄清了这一点。谢谢提醒。FWIW步过/步进的相同逻辑是否适用于Xcode/Swift
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
    }
}