首先很重要的一点是 比如我们当前的目录下有一个mian.c 文件我们直接gcc main.c 会生成a.out文件但是这种生成的文件是不能够被调试的。要使用下面的命令
gcc -g main.c -o main.out 这样才能调试。
还要注意一点的是如果我们在目录里面源文件main.c不在了被删除了是无法调试的、
具体使用如下
gcc -g main2.c -o main2.out
gdb ./main2.out
此时进入一个提示界面并且光标处于一个等待状态
输入l则展示代码
break具体打在某一行断点 示例 break 12 在第十二行打一个断点、
start 则是一行一行的调试
如图
到这里我们即将进入第14行代码 想进入change函数里 就不能继续输入n了。
输入s进入到change函数里
1处bt命令可以查看函数堆栈,2处是函数堆栈编号。当前是执行的change() 函数
3处代表切换到1这个函数栈里、
4处代表切换到0这个函数栈里
继续输入n则执行打印语句
会输出5处的结果。
然后就是调试结束。按下q退出。