- 切到文件项目下
gcc *.c -o app -g ----编译所有.c文件 生成文件---名为app -g添加调试信息
- 执行生成的文件app
./app
- 源文件:duwa.c
#include <stdio.h> #include<stdlib.h> void main() { char *words="每当浪潮来临的时候,你会不会也伤心(我当然也会伤心),在拥挤孤独的房间里,我已经透不过气"; int i,j=0; for(i=0;i<10;i++) { j++; } printf("想和我们家松鼠去高级会所放松放松 "); getchar(); }
- 切换到源文件目录下执行 gdb app(app是刚才生成的目标文件)
开始进入调试模式
- l 命令
输出结果:一次显示代码中的10行,按下回车会继续显示接下来的行
- 按q回车退出调试模式
- l duwa.c:main ----从文件duwa.c的main函数处开始调试信息
- 加断点在12行,(拓展:如果变量等于某个值的时候,才设置断点,可以这样 b 15 if i==15)
执行start,程序会停在断点处,显示执行的代码
- info或者写成i----执行i b可以查看断点信息
- start执行后,你可以继续执行n单步调试执行
- 运行start后,查看变量类型: ptype 变量名
- 查看变量: p变量名,撤销追踪变量 undisplay 变量名
- 追踪变量 display 变量名-----display i,配合单步执行n,可以查看变量名的值,和执行情况
- 如果调试需要,我需要直接查看循环8次后的信息可以运行set var i=8
- 进入循环后,跳出单次循环----相当于continue
- 停止循环,----停掉断点,输入finish