1、gdb命令
- run:在调试器中运行程序
- list:查看程序源码
- break+行号:设置断点
- break+行号+if条件:设置断点
- break+函数名:设置断点
- info break:查看断点信息
- delete+断点编号:删除断点
- enable/disable:使能断点
- print+X+变量名:查看变量值
- next:单步执行,不进入子函数(跳过函数,直接拿结果)
- step:单步执行,进入子函数
- continue:继续执行,遇到下个断点
- finish:继续执行,在函数内部时,执行到函数结束
- call+函数名:调用函数
- print+变量=值,设置变量里面的值
- clear:清除所有断点
- ptype+变量:查看变量类型
- gdb+可执行文件+--tui:启动图形化调试窗口
- layout asm:显示汇编
- layout src:显示源码
- layout spilt:显示源代码+汇编
2、工程管理器make(如何编写makefile文件)
- 什么是工程? 多个源文件+其他文件(图片+头文件+脚本)
- 工程管理器的作用:自动编译多个源文件
- make的依赖makefile(大小写都可以,会先用小写,可以-f 指定目标文件)
- makefile文件是一种脚本文件
- makefile语法:
- 目标(最终生成的文件):真目标(会生成目标文件)伪目标(用 . PHONY 声明不会生成目标文件)
- 依赖(生成目标时所需要的文件)、命令(生成目标时,需要执行的命令)
- 执行顺序
- make:默认从第一个目标体执行
- make+目标体:从对应的目标体执行
- 如果目标体后面依赖的文件是一个目标的话,先执行依赖对应的目标,在执行目标体的命题
- 自动化变量($^ 所有依赖文件 $@目标文件 $< 第一个依赖文件) gcc $^ -o $@ 还可以用@取消回显,可以用@echo make done 进行回显
- 多级目录下的makefile(衣橱分开装衣服,方便拿取,方便更新)
- 顶层:总控:进入各个子功能目录下执行make命令,将各个子目录下的.o文件链接生成可执行文件
- 子目录:功能:将当前目录下的.c文件编译成.o文件
- scripts目录:头文件:定义一些变量
- 观看顺序,3,1,2,。不懂可以看书上的一些东西