步过(Step Over)和单步执行(Step Into)是调试代码时使用的两种不同方法,它们在交互式调试器中逐行执行代码。这两种方法的主要区别在于它们如何通过函数调用:
-
步过 (Step Over)
使用步过执行代码时,调试器不会进入任何函数或方法。如果当前行包含一个函数调用,调试器将执行整个函数,并将控制点放在函数执行后的下一行。
步过允许快速跳过对当前不感兴趣的函数调用,专注于当前函数或代码块的执行流程。
这种方法适合于当想要了解代码的整体执行流程,而不关心函数内部的具体实现时。 -
单步执行 (Step Into)
当您使用单步执行代码时,调试器会进入任何被调用的函数或方法。如果当前行包含一个函数调用,调试器将进入该函数,并在函数的第一行或下一级可执行代码处停止。
单步执行允许您深入到代码的每一个细节,包括所有的函数调用和循环内部。
这种方法适合于当您需要理解特定函数的内部逻辑,或者想要检查函数内部的变量状态和执行流程时。
在实际使用中,选择步过还是单步执行取决于调试需求。如果只是想要了解代码的执行流程,而不关心具体的函数实现,那么步过可能更合适。如果需要定位问题发生的具体位置,或者想要查看函数内部的执行情况,那么单步执行将是更好的选择。 -
步入(Step Into)
步入是一个调试命令,它允许调试器在执行程序时进入函数内部。当程序执行到一个函数调用时,如果选择步入,调试器会停止在被调用函数的第一行代码上,而不是简单地执行整个函数并停在函数调用的下一行。这样,调试者可以逐行查看函数内部的代码执行情况,包括局部变量的变化和函数内部的逻辑流程。
应用场景:需要了解某个函数是如何执行的,或者想要检查函数内部是否存在错误时,使用步入可以帮助你逐步跟踪函数的执行过程。 -
步出(Step Out)
步出是另一个调试命令,它允许调试器完成当前函数的剩余部分,并返回到调用该函数的代码位置。当你使用步出时,调试器会继续执行直到当前函数的最后一行,然后跳出该函数,停在调用这个函数的下一行代码上。
应用场景:如果已经观察了函数内部的一部分执行流程,并且确定不需要进一步查看函数的剩余部分,或者只想看到函数调用的结果和对外部代码的影响,那么使用步出可以让你快速退出当前函数并继续执行后续的代码。 -
断点 (Break Point)
断点一般在ide中可以点击左侧行号标红来添加断点,在ide调试的时候会在断点处停下,如图所示(被蓝色标注的行表示目前正在运行的代码)
步入和步过的区别
在如图所示代码中,如果点击步入,调试器将会进入函数中,调试函数内的print('hello'+name)
如果点击了步过,调试器不会进入函数,但是函数任然会运行,只是省略了在函数内运行的步骤,就会直接执行到hello("world")
的末尾而不是进入函数。
步入和单步执行的区别
单步执行的时候,代码会跳过引用的第三方库的函数,而步入的时候代码会进入第三方库内执行内容
评论列表(1条)