您当前的位置: 首页 >> 资讯 >  >> 
天天百事通!嵌入式软件调试技巧有哪些?
来源:面包芯语      时间:2023-06-29 22:34:59


(资料图片)

在嵌入式软件开发过程中,一般来说,花在测试比花在编码的时间要多很多,通常为3:1(甚至更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。

很多年前,一位开发人员为了在对嵌入式有更深层次的理解,询问了这样的一个问题:我怎么才能知道并懂得我的系统到底在干些什么呢?

面对这个问题有些吃惊,因为在当时没有人这么问过,而同时代的嵌入式开发人员问的最多的大都围绕“我怎么才能使程序跑得更快”、“什么编译器最好”等问题。

面对这个不同寻常却异乎成熟的问题,可能很多人都不知道怎么办,下面就来讲讲软件测试找bug常见方法和秘诀。

那么为什么那么多的人总是在折腾个半死之后才想到要用测试工具呢?原因很多,主要有两个:下面来介绍一些嵌入式常用的测试工具(1)、源码级调试器[Source-levelDebugger](2)、简单实用的打印显示工具[printf](3)、ICE或JTAG调试器[In- circuitEmulator](4)、ROM监视器[ROMMonitor](5)、Data监视器[DataMonitor]这种监视器在不停止CPU运行的情况下不仅可以显示指定变量内容,还可以收集并以图形形式显示各个变量的变化过程。(6)、OS监视器[OperatingSystemMonitor](7)、性能分析工具[Profiler]可以用来测试CPU到底耗在哪里。profiler工具可以让你知道系统的瓶颈在哪里、CPU的使用率以及需要优化的地方。(8)、内存测试工具[MemoryTeseter]可以找到内存使用的问题所在,比如内存泄露、内存碎片、内存崩溃等问题。如果发现系统出现一些不可预知的或间歇性的问题,就应该使用内存测试工具测测看。(8)、运行跟踪器[ExecutionTracer]可以显示CPU执行了哪些函数、谁在调用、参数是什么、何时调用等情况。这种工具主要用于测试代码逻辑,可以在大量的事件中发现异常。(9)、覆盖工具[CoverageTester]主要显示CPU具体执行了哪些代码,并让你知道那些代码分支没有被执行到哪里。这样有助于提高代码质量并消除无用代码。(10)、GUI测试工具[GUITester]很多嵌入式设备没有GUI,但常常可以对嵌入式设备进行插装来运行GUI测试脚本,虽然这种方式可能要求对被测代码进行更改,但是节省了功能测试和回归测试的时间。(11)、自制工具[Home-madetester]在嵌入式应用中,有时候为了特定的目的,需要自行编写一些工具来达到某种测试目的。本人曾经编写的视频流录显工具在测试视频会议数据流向和变化上帮了大忙,帮公司找到了几个隐藏很深的bug。

嵌入式调试也是一门艺术。就想其它的艺术一样,如果你想取得成功,你必须具备智慧、经验并懂得使用工具。只要我们能够很好地领悟Oracle这十条秘诀,我相信我们在嵌入式测试方面就能够取得成功。
标签:

X 关闭

X 关闭