嵌入式第四周总结

本次了解一下调试器gdb,隶属于GNU计划的工具,顺便说下内核调试工具KGDB,我们知道程序一般的错误分为两大类,第一个呢是语法错误,也叫编译时错误,第二个就是运行时错误,包括内存问题和逻辑问题。知道了可能出现的错误及问题,那么gdb的功能是什么呢?有三点,第一是运行程序,第二是设置变量,第三是查看变量值。假设有一个文件xx.c,那么可以用 gcc -g xx.c -o xx gdb xx运行即可。接下来介绍下几个命令,第一组:–tui,这个图形化的界面,其中layout为布局,比如layout asm 显示汇编,layout src显示源码,layout split显示分割。第二组命令run 就是运行的命令,关于运行的命令还有finish和continue等。与断点相关的命令break。break可以加上行号,加上函数名和if条件。另外可以用info break 来查看断点信息。怎么删除断点信息呢?可以用delete 加上断点编号。接下来介绍工程管理器make,什么是工程管理器?它是编译很多个文件(类型不同,存放在不同目录,资源文件使用)组成的软件代码结构,其能够实现自动编译,根据makefile文件的内容来进行。由此可知,工程管理器并不是要求会使用,而是要学会如何编写makefile文件。makefile实际上是个脚本文件(批处理)。批处理就是把一步步的操作一批做完。如何在makefile里写呢?这样就需要了解makefile的语法有三要素,它们分别是目标,依赖,命令。格式为目标:依赖 按下tab 命令。三者的关系为执行这条命令,依赖于这个文件,最终会生成这个目标。makefile有三类,第一类是总控Makefile,做的事情为进入各个功能目录执行make,并将所有.o文件链接生成可执行文件。第二类是功能目录Makefile,所做的事情为将功能目录下的源文件编译生成目标文件。第三个是scripts目录下头文件Makefile,所做的事情为定义变量,供其它makefile使用。
接下来讲一个问题,为什么把.C文件编译生成.O文件再由.O文件生成可执行文件。前提是源文件到可执行文件要经过预处理,编译,汇编,链接。假设每个过程需要1秒,则gcc xx.c -o xx需要经过4秒。如果4个.C文件直接进行gcc,则需要进行20秒。而.O文件相当于半成品,在进过一次编译消耗20秒,如果修改其中一个文件,则进行二次编译,那么就不需要重新从头开始,而是从未被修改的.C文件由.O往下进行,缩短了时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值