- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
嵌入式linux应用程序调试方法
—前言 2
二嵌入式linux的NFS开发环境的建立 7
三GDB调试应用程序 14
四内存工具 17
MEMWATCH 17
YAMD 22
ElectricFence 24
五C/C++代码覆盖、性能profiling工具 24
用gcov来测试代码覆盖率 25
使用gprof来优化你的C/C++程序 35
文件名
嵌入式linux应用程序调试方法
适
用
创
建
作者
飞越丛林
时间
2007-08-08
版本号
V0.1
说明:参考网络上的资料对nfs;gdb+gdbserver;gcov,gprof进行了一些描述;有不少资料是直接拷贝过来的,只相当于尝试汇总一下吧?;实际上还处于毛胚阶段。
修
改
作者
时间
版本号
感觉偶们项目组的调试手段很匮乏,刀耕火种也许有点过分,但是也差不多;当然这和偶这个小组长的能力有关,自己先汗一个。不过没有办法,整天要浸泡在对流程从头到尾的探索,修改,再探索,再
修改;经验一点一点艰难的积累…..顾此失彼,没有更多的时间来思考更多的手段问题,算是一个接口吧。
痛定思痛,还是想办法提高一点生产力。在公司内没有找到相关的资料,于是这段时间就从网络这个巨人那里讨教窃取了一些资料,结合自己的项目stepbystep,“生产工具能够促进生产力的发展”,工具还是给调试带来了很多便利;因为记性不好,随手将一些资料连同自己的使用情况记录了下来,共享出来希望对大家能够有所帮助。
由于缺乏操作系统移植经验,很多东西没有系统知识的支持,在目标板上只能浅尝辄止,没有更深入的探讨,东西比较浅显,光脚不怕穿鞋的,抛砖引玉,希望更多的人能够将自己的使用经验分享出来,将linux的共享精神发扬光大?。当然也方便我们根据你的经验“拿来主义”。
—前言
在嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。很多年前,一位开发人员为了对嵌入式有更深层次的理解,向Oracle询问了这样的一个问题:我怎么才能知道并懂得我的系统到底在干些什么呢? Oracle面对这个问题有些吃惊,因为在当时没有人这么问过,而同时代的嵌入式开发人员问的最多的大都围绕“我怎么才能使程序跑的更快”、“什么编译器最好”等肤浅的问题。所以,面对这个不同寻常却异乎成熟的问题,Oracle感到欣喜并认真回复了他:你的问题很有深度
很成熟,因为只有不断地去深入理解才有可能不断地提高水平。并且Oracle为了鼓励这位执着的程序员,把10条关于嵌入式软件开发测试的秘诀告诉了他:
懂得使用工具
尽早发现内存问题
深入理解代码优化
不要让自己大海捞针
重现并隔离问题
以退为进
确定测试的完整性
提高代码质量意味着节省时间
发现它,分析它,解决它
利用初学者的思维
这十条秘诀在业界广为流传,使很多人受益。本文围绕这十条秘诀展开论述。1.懂得使用工具
通常嵌入式系统对可靠性的要求比较高。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着越来越多的领域使用软件和微处理器控制各种嵌入式设备,对门益复杂的嵌入式软件进行快速有效的测试愈加显得重要。
就象修车需要工具一样,好的程序员应该能够熟练运用各种软件工具。不同的工具,有不同的使用范围,有不同的功能。使用这些工具,你可以看到你的系统在干些什么,它又占用什么资源,它到底和哪些外界的东西打交道。让你郁闷好几天的问题可能通过某个工具就能轻松搞定,可惜你就是不知道。那么为什么那么多的人总是在折腾个半死之后才想到要用测试工具呢?原因很多,主要有两个。一个是害怕,另一个是惰性。害怕是因为加入测试用具或测试模块到代码需要技巧同时有可能引入新的错误,所以他们总喜欢寄希望于通过不断地修改重编译代码来消除bug,结果却无济于事。懒惰是因为他们习惯了使用printf之类的简单测试手段。下面来介绍一些嵌入式常用的测试工具。
.源码级调试器[Source-levelDebugger]
这种调试器一般提供单步或多步调试、断点设置、内存检测、变量查看等功能,是嵌入式调试最根本有效的调试方法。比如VxWorksTornadoII提供的gdb就属于这一种。
.简单实用的打印显示工具[printf]
printf或其它类似的打印显示工具估计是最灵活最简单的调试工具。打印代码执行过程中的各种变量可以让你知道代码执行的情况。但是,pri
文档评论(0)