嵌入式Linux开发工具(二)

一.调试器gdb

  1. 隶属于GNU计划的工具;内核调试KGDB
  2. 程序的错误分类:编译时错误;语法错误;逻辑问题;内存错误[segmentation fault (core dumped)]
  3. gdb的功能:运行程序;设置断点;查看变量值
  4. 下面展示一些 gdb语法
hello.c  gcc  -g  hello.c  -o  hello
gdb  hello
//图形化启动
gdb hello  --tui
(gdb) l(ist)      //显示源码//
(gdb) layout asm  //显示汇编语言//
(gdb)layout src  //显示源码//
(gdb) layout split  //分割//
  1. 使用: gdb 详解
    –tui:
  • break+行号/函数名/条件if语句
  • run停在断点行
  • continue运行知道遇到下一次断点
  • info break 进入断点
  • enable +断点编号
  • disable+断点编号
  • 单步执行
    1.step 可以进入子函数
    2.next 不可以进入子函数

二.工程管理器—make

1.定义:编译多个文件(类型不同,存放不在不同目录,资源文件使用)组成的软件代码结构。
本质:实现“自动编译”

  • 根据makefile文件内容进行自动编译
  • 根据文件的时间戳来判断文件是否要编译

2.make就是规定如何编写makefile文件:

  • makefile是个脚本文件(批处理)

  • makefile语法:目标,依赖,命令
    目标依赖
    按下tab 命令
    三者关系:执行命令,依赖这个文件,最终生成这个目标。
    执行顺序:自上向下,当你的目标依赖的文件又是有一个目标时,会先跳转到该目标去执行相关命令。
    make+目标名 (从该目标开始自上而下执行)

  • 伪目标:执行命令,不生成对应的文件
    下面展示一些 伪目标命令

.PHONY:clean
clean:
       rm  -f  hello  hello.c
make clean

3.为什么将.c文件先编译生成.o文件,再由.o文件生成可执行文件?
答:加快编码效率。

4.功能目录管理软件代码:
makefile:

  • scripts目标头文件:定义变量,供其他makefile使用
  • 总控makefile:进入各个功能目标执行make,并将所有.o文件链接生成可执行文件。
  • 功能目录makefile:将功能目录下的源文件编译生成目标文件.o

你可能感兴趣的:(嵌入式Linux开发工具(二))