Linux常用工具(2)
gdb调试器
gdb调试器是用来检查代码错误的东西,当出现错误的时候我们就可以用调试器高效的找出代码的错误.
错误分类: 编译错误 .链接错误.运行时错误.
前提: 程序要进行调试,必须是一个debug版本的,又因为gcc和g++默认生成的是release版本的,所以我们就需要运用g进行转换,然后才能进行编译.
gcc -g test.c -o test //将其变成debug版本,方便进行调试
gdb ./test.exe //常用调试指令
流程控制
流程控制:下面是一些命令符的操作,一定要熟练掌握:(加粗为简写,斜体举例)
具体功能 | 操作符 |
---|---|
直接运行程序 | r run |
开始逐步调试 | start |
查看调试行附近的代码 list test.c :12 | l list |
下一步 逐过程 遇到函数运行完毕 | n next |
下一步 逐语句 遇到函数进入调试 | s step |
直接运行到指定位置 until test.c:16 | until |
从当前位置运行 | c continue |
打断点 break test.c:14 | b break |
查看断点 | ib info break |
删除断点 delete id | d delete |
变量监控断点 变量发生变化就停下来 watch variable_name | watch |
退出gdb调试 | q quit |
内存控制
同上:
具体功能 | 操作符 |
---|---|
查看或设置变量内容 print var_name | p print |
查看函数调用栈 | bt backtrace |
make/Makefile
对于这个板块主要是要理解之间的关系,多看看就好啦!如图:
预定义变量使用:
对象 | 对应符号 |
---|---|
目标对象 | $@ |
所有依赖对象 | $^ |
表示依赖对象的第一个 | $< |
伪对象: 声明一个目标对象与外部文件无关,可以一直重新生成. eg: .PHONY:
make的解释执行规则:
1.在命令行中敲击make,程序会自动在目录下找到makefile/Makefile的文件,对内部进行构建规则.
2.在规则中,找到要生成的地一个目标对象
3.make每次只会找Makefile中的第一个对象.进行解释完后就会退出,(你如果需要执行多个语句的话,那你就需要把最终生成的语句写在最前面,这样执行第一个语句的时候,遇到内部如果有其他的对象就会去被动调用这些函数,就可以执行多个对象了)
4.make在生成目标对象的时候,先找到依赖对象的生成规则,先生成依赖对象,然后再去生成目标对象.
下面我对这一流程进行一个简单的操作,方便大家理解:
这两句比较简单,我就不多解释了,明天继续加油!!!