next与step的区别

next与step的区别

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函数的最后一行。

Viewpoint #

From #