嵌入式培训
达内IT学院
400-996-5531
最近听有的人说:写程序简单,一调试就头疼,这到底是怎么回事呢?这不请来了嵌入式培训高手给大家分享C语言调试经验,希望可以带给大家一些思考。
在开始之前先回答大家一个问题:为什么是嵌入式培训高手分享C语言调试经验?嵌入式与C语言又有着怎样的渊源呢?
众所周知,C语言在嵌入式开发中占有十分重要的地位,它们的关系非比寻常。那么为什么嵌入式开发会选择C语言,而不是其他语言呢?
嵌入式开发是在操作系统内部做开发的,操作系统所有的内核几乎都是C语言编写,如果我们也使用C语言做开发,必定会具备一定的优势。
再者,C语言相较其他的高级编程语言,其所有的特点对于嵌入式开发软件是再合适不过的了。
C语言的特点如下:
C语言具有出色的可移植性,能在多种不同体系结构的软/硬件平台上运行。
C语言具有简洁紧凑、使用灵活的语法机制,并能直接访问硬件。
C语言具有很高的运行效率。
嵌入式软件一般需着重考虑三个方面:性能、安全性和开发效率(包括代码可移植性等)。
性能(运行效率)方面,汇编明显是最高的。但汇编在安全性和开发效率方面明显是最低的。所以除非是要求极端高性能的嵌入式平台(或者是系统实在是太简单而没办法支持高级语言),使用汇编语言的不多。我们一般进行初始化时会使用汇编语言。
而其它高级语言的运行效率一般比较低(C程序运行效率可达汇编的80%,而其它程序可能只有C程序的80%),源代码和目标代码也可能会比较长。这样占用的内存也会比较大。嵌入式开发的编程是要在开发板上跑的,占用内存的增多必然会影响性能。这样一来,C语言的优势就会凸现出来啦。
接下来,我们再来看正文吧:
很多同学在写C语言时,感觉最难的不是程序怎么写,而是程序写完了怎么调试。程序写出来了,自己检查着没有错误,但一运行却出现一大堆错误,好不容易、好不容易改的没错误了,一运行却不出正确结果,然后又小心恋恋的改动一处,忽然又冒出一大堆错误来,再后来呢,稀里哗啦一阵乱响之后,便“飘然而去”。
产生这种情况的原因是基本知识掌握不牢,基本语法掌握不靠,练习做的太少,调试功夫不到家所致。掌握了正确的调试技巧,多多练习,这种情况应该能比较快的解决。
程序的调试非常重要,不只是C语言,对于所有语言来说都是如此,掌握好的调试方法,可以事半功倍。下面说一下程序已经没有编译错误,能够运行,但又得不出正确结果的情况下的程序的常用常见调试方法:
1、追踪方式执行(Trace):一步一步执行,遇到函数调用,追踪到调用函数,一步一步执行。
2、单步方式执行(step):一步一步执行,遇到函数调用,调用语句作为一步执行。
3、下断点(breakpoint):设置断点,当程序执行到断点时,程序暂停执行。
4、执行到光标所在处(go to cursor):相当于一个断点。
5、监视(watches):随时监视某些变量或对象值的变化情况。
常用常见的就是这五种方法。以上方法适用于程序已经没有编译错误,能够运行,但又得不出正确结果的情况。在程序的调试过程中,监视某些变量或对象值的变化情况是很重要的一部分,前四种执行方式与值的监视配合使用,能准确定位错误所在,可以具体到是哪一行出现错误。
如果怎么调都有编译错误怎么办呢?这是练习做的太少,基础不是太好的缘故。这需要再下点功夫,再多做点练习。程序写多了,当出现一种错误时,就知道大体是什么原因造成的了。网上和教材上有专门论述出错信息及错误处理的文章,个人觉得这类文章大部分不太适合初学者看。
出错信息都是英文,不是太明白怎么办?可以用金山快译翻译一下,尽量避免下次再犯错。
恭喜你阅读完了本文,相信对你做C语言调试有一定的帮助,你还有其他有助于C语言调试的方法吗?或者你还有嵌入式相关的问题吗?欢迎你来达内嵌入式培训机构进行咨询。
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved