[发明专利]一种航天嵌入式C语言软件运行时错误的静态分析方法有效
申请号: | 201110291315.2 | 申请日: | 2011-09-29 |
公开(公告)号: | CN102508766A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 王崑声;詹海潭;经小川;张刚;李宁 | 申请(专利权)人: | 中国航天科技集团公司第七一〇研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 臧春喜 |
地址: | 100048*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 航天 嵌入式 语言 软件 运行 错误 静态 分析 方法 | ||
技术领域
本发明涉及一种航天嵌入式C语言软件运行时错误的静态分析方法,属于软件测试技术领域。
背景技术
目前在航天领域,C语言被普遍应用于编写嵌入式软件,C语言已经成为嵌入式系统高级编程语言的标准。C语言有很多优点但是对于开发高安全软件来说它缺少必要的安全措施,主要缺陷有:C语言的非强制类型特性降低了它的可靠性;C语言的另一个特性是没有对指针操作进行严格的限定;此外,C语言不提供对数组和字符串的边界检查。正是由于C语言的这些缺陷,C程序中会存在一些漏洞和错误,其中一类为运行时错误。运行时错误(Run-time Error)就是软件在动态运行时出现的错误。根据ANSIC定义,运行时错误是指那些能导致预定义之外的不正确结果或者处理器停机的错误。
运行时错误是所有软件错误中最具风险的,同时也是最难发现的。对于航空航天、汽车以及医疗设备等安全级别要求非常高的系统来说,一旦出现这样的运行时错误,损失就是不可估量的。
对运行时错误进行检测的方法主要有动态测试和静态分析两种。动态测试是传统的方法,通过软件的实际执行来发现软件中的错误。其检测结果高度依赖于测试用例的选择,同时,由于只能对有限的测试用例进行检查,所以动态测试方法不能保证发现软件的所有安全漏洞。静态分析方法是在程序不执行的状态下,通过对被检测软件进行建模,发现满足所有可能执行状态的软件属性,再通过对事先预定的规则库的分析来检测软件中的错误漏洞。
静态分析主要有定理证明,模型验证和抽象解释等方法。定理证明和模型检验都属于形式化验证方法,可以精确地确定软件的属性。定理证明方法将程序转换为逻辑公式,然后使用公理和规则证明程序是一个合法的定理。由于定理证明过程难以完全自动化,需要高素质分析人员的大量参与,证明过程非常耗时费力,一般只用于验证设计阶段的程序规范而非实际代码。模型检验用状态迁移系统(S)描述软件的行为,用时序逻辑、计算树逻辑或μ-演算公式(F)表示软件执行必须满足的性质,通过自动搜索S中不满足公式F的状态来发现软件中的漏洞。由于需要穷尽程序的所有实际执行状态,所以模型检验的效率很低,并且不能检验无穷状态系统。抽象解释是用于构造和逼近程序不动点语义的理论,它使用抽象对象域上的计算抽象来逼近程序指称的具体对象域上的计算,使得程序抽象执行的结果能够反映出程序真实运行的部分信息。它仅跟踪用户关心的程序属性,所以它对程序语义的解释是程序实际语义的近似。错误检测的两个标准是准确度和效率。静态分析各个方法都有自己的局限性,定理证明和模型验证方法的准确度比较高,但效率却比较低。抽象解释方法的效率比较高,但准确度却比较低。如何在准确度和效率上取得一个好的平衡是静态分析的难点,也是目前研究热点。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种航天嵌入式C语言软件运行时错误的静态分析方法。采用本发明提高了对航天嵌入式C语言软件运行时错误进行检测的准确度和效率。
本发明的技术解决方案是:
本发明所述的一种航天嵌入式C语言软件运行时错误的静态分析方法,通过以下步骤实现:
(1)对航天嵌入式C语言软件运行时错误进行分类,按照分类后每类错误的属性模式构造属性状态机,所述属性状态机包括程序运行过程中可能出现的属性状态Di,i={1,…n},n为每类错误中的属性状态总数,Di包括程序运行过程中可能的出现的错误状态;
(2)按照程序的控制流程图和运行时错误的属性状态机,根据控制流程图中位置l处的节点信息和输入属性状态σl_in,获得经位置l处的节点处理后的输出属性状态σl_out和路径条件Cs,l,其中,s为到达位置l处的路径;
(3)判断σl_out与属性状态Di的关系:
若σl_out为Di中的错误状态,则将路径条件Cs,l作为可能出现的错误提示输出,并不再对Cs,l进行后续分析;否则,将σl_out作为下一个位置处的输入属性状态返回步骤(2),直到程序出口。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航天科技集团公司第七一〇研究所,未经中国航天科技集团公司第七一〇研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110291315.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于自主动作、想象动作下脑肌电信号联合分析方法
- 下一篇:一种搓澡皮带