1. 代码举例

//example.c
#include <stdio.h>
  
int addNumbers(int num1, int num2) {
    return num1 + num2;
}

int main() {
    int a = 10;
    int b = 20;
    int sum = addNumbers(a, b);
    printf("The sum is: %d\n", sum);
    return 0;
}

2. 代码编译带上-g

gcc -g -Wall -o example example.c
gdb example

3. gdb运行example可执行文件,如果有参数也不用带上,后面的run的时候再带参数

gdb example //会进入(gdb)交互页面

4. (gdb)交互页面调试源代码

查询断点:(gdb) b  //输入break或者b,表示查询断点
设置断点:(gdb) break 1 //在源代码第1行设置断点,或者简写 b 1
启动程序:(gdb) run //或简写为 r 开始运行,如果有参数 r 后面继续添加参数,多个参数之间空格隔开

单步执行:(gdb) step (进入函数内部) //简写 s
下步执行:(gdb) next (不进入函数内部) //简写 n
查看变量值:(gdb) print variable_name //简写为 (gdb) p variable_name。
继续执行直到下一个断点:(gdb) continue //简写为 (gdb) c

退出GDB:(gdb) quit //简写为 (gdb) q