嵌入式Linux智能抄表终端软件代码审查技巧
作者:网络转载 发布时间:[ 2012/11/27 11:22:23 ] 推荐标签:
3、嵌入式Linux终端软件中的线程安全性问题
线程中隐藏的一个问题是他们可能会调用非线程安全的库函数,这样可能会产生错误的结果,如果多个线程能够同时执行函数的多个活动请求而不会相互干扰,那么这个函数是线程安全的(thread-safe)。POSIX规定了非线程安全的函数如下,这些函数一定要有一个以后缀_r表示对应的线程安全版本函数。(如图1)
既然上述函数不是线程安全函数的,那么我们必须对代码中这样的函数调用进行专项审查,通过搜索,函数查找等方法进行逐项排查,确保多线程执行的程序代码中不存在非线程安全的函数调用。实际上这样的问题,在实际应用多次出现,并且问题的定位和解决困扰了开发人员很长时间,在嵌入式Linux终端软件代码审查时,我们需要汲取这样的经验教训。
4、代码审查工具的使用
4.1 使用改进后的Pc-Lint审查工具对整个软件工程进行全面审查
PC-Lint是一种C/C++软件代码静态分析工具,借助PC-Lint可以对整个软件工程的代码进行批量检测,根据输出的检查结果,分析代码中潜在的问题隐患。目前,在我们的代码审查工作中,已经大面积的在使用Pc-Lint,通过实际的工作,Pc-Lint还是存在一些不足,比如在检查之前要进行大批量的命令行输入,后的审查结果以文本格式输出,没有进行分类汇总,针对这些问题,我们使用VBA编程技术,将Excel和Pc-Lint结合起来使用,收到了很好的效果。
我们将PC-Lint内嵌至Excel中,并设计了一个简单的操作界面,将参数设置,选项设置,待检查文件写入全部集中于一个操作界面中。在启动宏时,同时启动PC-Lint,可以避免大量的手动输入,并使检查结果自动分类,如图2所示:
在检查完成后,检查结果以电子表格的形式输出,并且已经进行了分类汇总,在输出的检查结果中,各类代码问题按照不同模块,不同文件排列出来,还给出了出现问题的行号,问题类型,以及详细的错误信息,这样一来,程序员可以快速定位到发生错误的地方,及时加以纠正,而且便于分类汇总,统计分析。
4.2 使用beyond compare工具对代码修改进行有针对性的审查
终端软件在日常开发并修改后,通过CVS代码管理系统提交到服务器,修改内容可以通过CVSTRAC网页工具进行查看,相关修改信息一目了然,这对于每日代码修改的审查提供了很大的方便,然而,借助专业代码比较工具beyond compare,可以对不同版本代码进行深入细致比对,并对修改部分进行重点审查,确保修改能够真正满足要求,如图3所示:
在beyond compare工具的比对窗口中,红色部分表示此次修改的内容,测试人员由此可以迅速的定位到代码的修改部分进行重点审查,大大的提高了效率,降低了工作量。
5、结语
本文结合多年来对嵌入式Linux软件代码的审查经验,总结了在代码审查过程中发现的一些常见问题,并针对终端软件代码多线程编程的特点,根据实践经验,对线程安全性问题进行了分析,后介绍了根据实际需要进行了改进的Pc-Lint检查工具和beyond compare工具的使用,因此,本文对基于嵌入式Linux的抄表终端软件的代码审查具有一定的借鉴和指导意义。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11