1. 单步跳过(Step Over)
- 功能:执行当前行的代码,如果这行代码包含一个函数调用,那么调试器不会进入该函数内部,而是将整个函数作为一个单元执行完毕,然后停在下一行代码。
- 用途:当你对函数的内部实现已经非常了解,或者该函数是库函数、外部API等不需要深入了解的代码时,使用此命令可以快速跳过。
2. 单步调试(Step In)
- 功能:执行当前行的代码,如果这行代码包含一个函数调用,调试器会进入该函数内部,停在函数的第一行代码上。
- 用途:用于当你需要理解或调试某个函数的内部实现细节时。这允许你查看函数内部每一步的执行情况。
3. 单步跳出(Step Out)
- 功能:当你已经在一个函数内部,并想要退出这个函数时使用。调试器会执行当前函数的剩余部分,并在函数返回后的下一行代码停下。
- 用途:当你已经调试完函数内部的代码或者已经找到了需要的信息,想要快速返回到函数被调用的位置时使用。
示例场景
假设你有以下代码:
void functionA() {
// 代码部分
functionB();
// 更多代码
}
void functionB() {
// 一些复杂的代码
}
int main() {
functionA();
return 0;
}
- 如果你在
main
函数中的functionA();
行使用 Step In,调试器会进入functionA
。 - 在
functionA
中,如果你在functionB();
行使用 Step Over,调试器会执行functionB
但不进入其中。 - 如果你在
functionB
的任何一行使用 Step Out,调试器会执行完functionB
的剩余部分并返回到functionA
中functionB()
调用之后的行。