gcc test -o test会生成test
或者gcc -c test生成test.o
在 gcc test -o test最后生成test
gdb调试
gcc -g test -o test 调试模式
gdb test进入调试模式
用r(or run)运行程序
makefile的使用
make,make install,make clean命令
1. 使用gcc命令进行编译(务必需要-g选项)
gcc –g –o buffer buffer.c
2. 启动gdb进行调试
gdb buffer
3. 使用run命令运行程序
r (or run)
4. 根据逻辑找出问题,可附加使用list查看代码
l (or list)
5. 使用break命令设置断点
b (or break) lineNumber or functionName
6. 使用run命令运行程序
r (or run)
7. 使用watch命令指定需要跟踪的变量
watch Buffer
8. 按照终端提示输入input字符串,其他gdb
模式下输入n (or next)或者回车继续执行
9. 重复8,找出症结所在
10. 使用bt命令查看栈信息
11. 使用info b (or break)查看断点信息
12. 使用delete或者clear命令清除断点
13. kill杀死当前正在调试的程序进程
14. 使用quit命令推出gdb调试环境
加载和退出命令
gdb filename:在shell下直接加载文件进行调试
file filename:在gdb下通过file命令加载程序进行调试
kill:终止正在调试的程序
quit:退出gdb调试环境
断点控制
break 函数名或行号[if 条件]
Info break :显示程序中设置的断点;
delete breakpoint 断点号:删除指定的断点
clear 断点号:作用同上
disable breakpoint 断点号:禁用指定的断点
enable breakpoint 断点号:允许指定的断点
程序的控制指令
run:程序开始执行,一直运行到断点才终止;
continue:运行到下一个断点;
next:运行下一条指令;
step:运行下一条指令;
变量、参数的设置与查看
• list:列出产生执行文件的源代码的一部分.
• watch 变量名:当变量改变时,显示变量修改前后的值;
• print 变量名:打印变量值;
• whatis 变量名或函数名:显示变量或函数的类型;
• Ptype:显示数据结构的定义;
• set args:设置程序的运行参数;
• Show args:显示程序的运行参数;