1.gdb调试
gdb xxx —— 进入gbd调试,前提是xxx是包含调试信息的(详情见Linux学习笔记三)
gdb模式下:
l —— 查看文件代码(默认查看包含main文件的代码)
l xxx.c:n —— 查看xxx文件中第n行代码(如果第n行是一个函数,则显示函数的全部代码)
l xxx.c:yyy —— 查看xxx文件中yyy函数的代码
break(b) n —— 在第n行添加普通断点
break(b) n if 条件 —— 在第n行添加条件断点(满足条件才会暂停,条件可用C语言写)
info(i) break(b) —— 查看断点信息
start —— 开始调试(只执行一步)
n —— 单步调试
c —— 执行到断点
s —— 进入函数体内部
p xxx —— 查看xxx变量的值
ptype xxx —— 查看xxx变量的类型
display xxx —— 自动显示xxx变量的值(追踪变量)
info(i) display —— 查看追踪变量的编号
undisplay n —— 取消追踪变量(n为追踪变量的编号)
u ——跳出单次循环
finish —— 跳出当前函数(必须断点执行完或删除断点才行)
d n —— 删除断点(n为断点编号)
set var i = 10 —— 执行到变量i=10情况后的断点
quit —— 退出gdb调试
2.makefile —— 项目代码管理工具
文件内容:
第一行(依赖文件): 程序名 : + 需要的.c文件
第二行(命令): 首行缩进 + gcc 需要的.c文件 -o 程序名
执行makefile: 进入包含makefile的目录,然后使用命令make。
若文件需多次修改或增减,则改变编写方法。
第一行: 程序名 : 需要的.o文件
第二行: gcc 需要的.o文件 -o 程序名
第三行:.o文件1 : .c文件1
第四行: gcc -c .c文件1
第五行:.o文件2 : .c文件2
第六行: gcc -c .c文件2
.........
3.文件相关
#include <unistd.h>
void perror(const char *s); 将字符串s以错误信息打印