linux工具学习 day03

风中凌乱的猪头 / 2023-05-16 / 原文

1、gdb命令

  1. run:在调试器中运行程序
  2. list:查看程序源码
  3. break+行号:设置断点
  4. break+行号+if条件:设置断点
  5. break+函数名:设置断点
  6. info break:查看断点信息
  7. delete+断点编号:删除断点
  8. enable/disable:使能断点
  9. print+X+变量名:查看变量值
  10. next:单步执行,不进入子函数(跳过函数,直接拿结果)
  11. step:单步执行,进入子函数
  12. continue:继续执行,遇到下个断点
  13. finish:继续执行,在函数内部时,执行到函数结束
  14. call+函数名:调用函数
  15. print+变量=值,设置变量里面的值
  16. clear:清除所有断点
  17. ptype+变量:查看变量类型
  18. gdb+可执行文件+--tui:启动图形化调试窗口
  19. layout asm:显示汇编
  20. layout src:显示源码
  21. layout spilt:显示源代码+汇编

2、工程管理器make(如何编写makefile文件)

  1. 什么是工程? 多个源文件+其他文件(图片+头文件+脚本)
  2. 工程管理器的作用:自动编译多个源文件
  3. make的依赖makefile(大小写都可以,会先用小写,可以-f 指定目标文件)
  4. makefile文件是一种脚本文件
  5. makefile语法:
    1.       目标(最终生成的文件):真目标(会生成目标文件)伪目标(用   . PHONY 声明不会生成目标文件)
    2.   依赖(生成目标时所需要的文件)、命令(生成目标时,需要执行的命令)
  6. 执行顺序
    1.   make:默认从第一个目标体执行
    2.         make+目标体:从对应的目标体执行
    3.        如果目标体后面依赖的文件是一个目标的话,先执行依赖对应的目标,在执行目标体的命题
  7. 自动化变量($^ 所有依赖文件    $@目标文件  $< 第一个依赖文件) gcc $^ -o $@ 还可以用@取消回显,可以用@echo make done 进行回显
  8. 多级目录下的makefile(衣橱分开装衣服,方便拿取,方便更新)
    1.   顶层:总控:进入各个子功能目录下执行make命令,将各个子目录下的.o文件链接生成可执行文件
    2.         子目录:功能:将当前目录下的.c文件编译成.o文件
    3.         scripts目录:头文件:定义一些变量
    4. 观看顺序,3,1,2,。不懂可以看书上的一些东西