码迷,mamicode.com
首页 > 其他好文 > 详细

嵌入式开发/调试辅助工具

时间:2018-02-22 19:30:45      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:type   分组   libname   使用   说明   环境   crs   常用   strip   

开发辅助工具

开发环境组成

通常开发环境由三部分组成:
构建环境:包括代码编写,程序编译,版本控制等功能。
调试环境:用于定位问题的辅助工具集
测试环境:用于验证目标程序是否满足用户要求的显性需求和隐性需求
嵌入式开发中,通常有20%的时间用于目标构建,80%的时间用于测试、调试和bug修复,工欲善其事,必先利其器,提高开发和调试效率十分重要。GNU为GCC编译器提供了配套的辅助工具集(Binutils),网址:http://www.gnu.org/software/binutils/
技术分享图片

开发工具集

addr2line

将指定地址转换为对应的文件名和行号,常用于分析和定位内存错误的问题
addr2line 示例:定位0地址访问
1、开启core dump 选项
ulimit -c unlimited
2、运行程序,并生成崩溃的core文件
执行导致程序崩溃的测序用例
3、读取core文件,获取IP寄存器的值(0x08048000)
dmesg core
4、使用addr2line 定位代码行
Addr2line 0x08048000 -f -e test.out

strip

剔除称故乡文件中的调试信息,减少目标程序的大小
一本在程序发布前都选哟将调试信息剔除
过多的调试信息可能会影响程序的执行效率
strip test.out
注意事项:
几乎所有的调试辅助工具都依赖于目标文件中的调试信息
调试信息的运用可以快速定位问题
使用gcc 编译程序时使用-g 生成调试信息
发布程序时再考虑是否使用strip 剔除调试信息

ar

打包目标文件, ar crs libname.a x.o y.o
解压目标文件,ar x libname.a

nm

列出目标文件中的标识符(变量、函数名)
输出结果由三部分组成:{地址、段、标识符}
技术分享图片
段标识说明
技术分享图片

objdump

反汇编目标文件、查看汇编到源码的映射
objdump -d func.o
objdump -S func.o
查看目标文件中的详细段信息
objdump -h test.out

size

获取目标文件中的所有段大小, size test.out

strings

获取目标文件中的所有字符串常量,string test.out

嵌入式开发/调试辅助工具

标签:type   分组   libname   使用   说明   环境   crs   常用   strip   

原文地址:http://blog.51cto.com/11134889/2072208

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!