假设当前目录下有5个文件。
文件内容如下:
// add.c
int myadd(int a, int b)
{
return a+b;
}
// mul.c
int mymul(int a, int b)
{
return a*b;
}
// div.c
int mydiv(int a, int b)
{
return a/b;
}
// x.h
int myadd(int a, int b);
int mymul(int a, int b);
int mydiv(int a, int b);
// x.c
#include <stdio.h>
#include "x.h"
int main()
{
int a = 100;
int b = 12;
int add, mul, div;
add = myadd(a, b);
mul = mymul(a, b);
div = mydiv(a, b);
printf("%d + %d = %d\n", a, b, add);
printf("%d * %d = %d\n", a, b, mul);
printf("%d / %d = %d\n", a, b, div);
return 0;
}
1. 使用gcc编译文件,注意要加上-g参数。(-g : 在执行代码中包含调试信息)
2. 使用gdb调试可执行文件x,进入调试页面
gdb x
常用命令:
(gdb)list:查看原代码(list-n,从第n行开始查看代码。list+ 函数名:查看具体函数,list main 返回主函数),简写l
(gdb)break+num:在第num行设置断点,简写b。b+函数名,给函数设置断点
(gdb)run:重新开始运行文件, 简写r
(gdb)print:打印值及地址, 简写p
(gdb)next:单步调试(逐过程,函数直接执行),简写n
(gdb)step:单步调试(逐语句:跳入自定义函数内部执行),简写s
(gdb)quit:退出gdb,简写q