调试器 GDB
1.启动被调试程序
2.设置断点
3.查看断点处变量的值
调试选项 -g
gcc -g text.c -o text
gdb test //(gdb + 可执行文件) 作用 : 打开gdb调试工具
用到的指令解释:
run 运行程序 所有的命令都可以简写,只写第一个字母
list 显示代码 ?????????? 作业 :怎么通过list 查看代码????
1.启动被调试程序
2.设置断点
3.查看断点处变量的值
调试选项 -g
gcc -g text.c -o text
gdb test //(gdb + 可执行文件) 作用 : 打开gdb调试工具
用到的指令解释:
run 运行程序 所有的命令都可以简写,只写第一个字母
list 显示代码 ?????????? 作业 :怎么通过list 查看代码????
quit 退出
break + 行号 设置断点
run 停到断点处
next 一步步执行,不进入子函数
step 单步执行,进入子函数
print + 变量名 打印当前变量的值,
finish 运行完当前函数
continue 把剩下的程序执行完
删除断点
info break 查看断点信息,里面有段点的标号
delete 断点标号 删除该断点
设置断点可以加条件,满足条件才会设置断点
比如 break 21 if i = 15 //如果 i 等于15,则在21行设置断点
break 函数名
作业 ; GDB调试段错误
MAKE
工程概念 不同的C文件在不同的目录实现不同的功能
tree 可以树的方式查看当前目录的所有文件
make 批处理
工程管理器 实现 自动编译 在脚本文件时有提到过批处理
makefile 文件 帮助make编译项目源代码 如何编译的逻辑
makefile 的三元素
目标:依赖
命令
目标:依赖
命令
比如 文件夹下已有 hello.c 此文件
makefile 文件内容
hello:hell.o
gcc hello.o -o hello
hello.o:hello.c
gcc -c hello.c
.PHONY:clean //生成伪目标
clean:
rm -f hello.o hello
makefile 文件内容
hello:hell.o
gcc hello.o -o hello
hello.o:hello.c
gcc -c hello.c
.PHONY:clean //生成伪目标
clean:
rm -f hello.o hello
真目标会生成文件
伪目标只执行命令
make 命令 编译整个工程
伪目标只执行命令
make 命令 编译整个工程
make clean 会执行 rm -f hello.o hello 这条语句
make 目标题名 会把目标题名所在的那一行当作第一行执行
如果一个目录里有多个makefile文件
make -f makefile1 可指定某一个makefile文件
命令语句也变为 make -f makefile1 clean 形式
make -f makefile1 可指定某一个makefile文件
命令语句也变为 make -f makefile1 clean 形式
以功能目录存放源代码 .c文件
可以提高代码的可维护性
提高代码的可读性
提高代码的可读性
一个项目包括3种makefile文件
总控 makefile
功能目录 makefile
头文件 makefile [scripts]目录下