Content #
区别在于next不会进入子函数,而step会进入子函数。
//file: main.c
#include "squareit.h"
#include <stdio.h>
int main(void) {
int x = 5;
printf("%d squared is %d\n", x, squareit(x));
}
//file: squareit.h
#ifndef SQUAREIT_H
#define SQUAREIT_H
// return the square of an integer
int squareit(int x);
#endif // SQUAREIT_H
//file: squareit.c
#include "squareit.h"
int squareit(int x) {
return x*x;
}
假设gdb调试时,当前行为printf所在的行。这时如果执行step,则会进入 squareit函数。如果执行next,则squareit和printf都执行完成,当前位置为 main函数的最后一行。