首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 125 毫秒
1.
为验证CoSy编译器的安全性,并确定不安全因素大致出现的位置,提出一种通过控制流图的同构对比判定CoSy编译器是否安全的方法。该方法生成源程序的控制流图以及CoSy中级中间表示的控制流图后,生成由CoSy编译器产生的目标汇编码的控制流图,根据控制流图同构算法,判断控制流图是否同构,由此确定CoSy编译器的不安全因素发生在编译器的前端还是后端。实验结果表明,该方法能有效验证编译器的安全性。  相似文献   

2.
中断驱动的嵌入式系统广泛应用于对安全和稳定性要求极高的领域,但因系统设计复杂,运行环境多样等原因,中断不确定性导致的严重故障时有发生,数据竞争是较为棘手的问题之一。已有工作对中断导致的数据竞争检测做了许多尝试,但目前还没有比较易用的解决方案。为了解决这类问题,提出了一种基于控制流图的静态检测方法。该方法通过对源程序进行预处理分析,检测出程序中使用的共享资源和中断使能操作;根据预处理的结果,构建出源程序对应的简要控制流图;通过对简要控制流图的抢占关系分析,得到可能会导致竞争关系的执行序列。实验结果表明,该方法能有效检测出程序中潜在的竞争关系,并指明该潜在竞争的发生路径,帮助软件测试人员对故障进行确认和修复。  相似文献   

3.
带控制流的静态函数调用分析方法   总被引:2,自引:0,他引:2       下载免费PDF全文
提出一种带有控制流的静态函数调用分析的方法,通过建立模型,对源程序进行静态分析,得到程序中的控制流信息和函数调用信息。和已有的静态函数调用关系图分析工具calltree和Source Insight相比,该方法生成的函数调用流图不仅能展现函数间的调用次序,还可以了解程序设计的逻辑复杂度,有助于代码阅读和分析人员更快更好地理解程序结构以及设计流程,并为分析程序控制条件、设计路径覆盖测试用例和进行程序优化奠定基础。  相似文献   

4.
针对路径覆盖测试技术中如何计算被测试程序的有效控制流路径子集的关键性问题,提出一种利用LCC编译器的前端结果来生成基于一次循环策略的测试程序控制流路径子集的算法。该算法通过引入邻接矩阵并借助自定义的堆栈数据结构来完成控制流路径子集的生成。通过实验程序对算法进行检验,结果表明,该方法能高效准确地计算出待测源程序片的控制流路径子集。  相似文献   

5.
基于源程序获取实时控制系统的模式,不仅能够验证实现的模式与设计是否一致,还可使程序的最差情况执行时间(WCET)计算更为精准。为此,提出一种自动分析实时控制系统程序模式的方法。通过分析C语言源程序生成程序控制流图,对输入变量相关节点进行切片,形成依赖输入变量的控制流图(ICFG),建立ICFG每条路径的线性规划问题并求解,从而获得潜在的程序模式。在此基础上,计算指定模式下针对现代RISC处理器程序的WCET。在基准程序上的实验结果验证了该方法的可行性和有效性。  相似文献   

6.
并发控制流检测技术是防止由于单粒子反转事件而导致运行系统发生故障的有效手段,目前主要采用以控制流图为基础的结点签名技术。本文首先介绍并发控制流检测技术的分类标准;然后按照技术发展的脉络,从软硬结合、纯软件两方面介绍控制流检测技术的典型方法,对其进行分析评价;最后提出基于目前的方法并发控制流检测技术还需要解决的问题及新的发展方向。  相似文献   

7.
一种基于模型检验程序分析技术的前端工具研究   总被引:1,自引:0,他引:1  
叶俊民  谢茜  金聪  李明  张振方 《计算机科学》2010,37(5):118-122174
提出了一种用模型检验技术对程序进行分析的方法,其主要思想是将C/C++源代码转换为与控制流图等价的Kripke结构,用CTL公式描述待验证的源程序性质,使用NuSMV模型检验工具实施具体的程序分析。基于这一思想,设计并实现了一个自动将C/C++源代码转换为NuSMV输入的工具。所做的实验验证表明,该方法能够有效地对程序进行分析。  相似文献   

8.
Soot的Java程序控制流分析及图形化输出   总被引:1,自引:1,他引:0  
Soot是一个Java编译优化框架,可以利用它实现Java字节码程序的数据流分析和控制流分析。在深入分析Soot控制流生成机制的基础上,详细叙述了利用Soot分析Java类的控制流并生成其控制流图的方法和过程,同时提出了将Soot生成的抽象的控制流图进行图形化输出的方法。  相似文献   

9.
传统的源码缺陷分析方法存在缺陷规则有限,缺陷检测结果不明确等问题。以模型检测中的形式化规约为基础,提出一种积木式缺陷规则库构建和源码检测方法。利用元数据,用户能够通过简单的CTL逻辑操作,实现自定义待检测的缺陷种类。并且,在检测到缺陷后能返回带有源程序行信息的反例路径,帮助开发人员快速定位缺陷根源。作为系统核心部分,规则库引擎从源程序中抽取控制流结构,进行符合控制反向(IOC)机制的元数据的动态匹配与标记。采用时序逻辑规约和标记后的控制流结构对程序建模,并结合NuSMV模型验证器实现验证。实现了原型系统,通过对开源程序的检测说明了该方法的有效性。  相似文献   

10.
内存泄漏故障静态分析研究   总被引:1,自引:0,他引:1  
目前研究人员主要采用静态测试技术实施对内存泄漏故障的检测,其基本思想就是依据待测程序的控制流图来设计特定的算法以检测内存泄漏问题,但这些方法的不足之处主要是控制流图的表示方式上未含有进一步可用信息,因此所设计的算法不能很好地执行该故障的检测任务.为此,定义了一种用于内存泄漏故障检测的控制流图,提出控制流图可达路径生成算法,然后根据生成的路径进行内存泄漏故障的检测与分析.实验证实,该方法取得了理想的效果.  相似文献   

11.
本文通过对汇编语言地指令系统的共性的研究.找到了一种有效的在汇编语言的基础上。自动得到源代码的流程图的算法。对软件维护自动化的实现提供了良好的开端。  相似文献   

12.
运用程序控制流图,可以方便地度量程序的逻辑复杂度,确定软件测试中控制结构独立路径的基本集合。文章提出了根据程序设计的伪码,自动生成程序控制流图的数据结构和详细的算法,为进行控制优化、软件基本路径测试以及程序控制相关性分析提供了良好的基础。  相似文献   

13.
针对Java单元测试自动化程度和测试效率较低的问题,对基于Java程序的基本路径测试方法进行研究,提出了基于Java代码的基本路径生成方法和程序插桩方法,给出了插桩节点和控制流图节点的定义。首先,通过对Java源代码进行分析,构建程序的控制流图,进而对控制流图进行遍历生成基本路径集合;然后,对被测程序进行插桩,以获取程序的执行路径,插桩过程中保持节点和基本路径中的节点一致,使得插桩后的被测程序执行时得到的路径能够和基本路径集合进行自动化比对;最后,通过以测试数据为输入执行被测程序,对执行路径和基本路径进行比较,判断测试数据集对基本路径的覆盖度。通过实验,验证了所提出方法的有效性。  相似文献   

14.
基于过程蓝图的程序环路复杂性度量方法   总被引:1,自引:0,他引:1  
提出一种基于过程蓝图的程序环路复杂性度量实现方法。将传统基于程序控制流图的度量信息抽取变为对过程蓝图的实现层表示-抽象实现结构图的信息抽取,避免程序源代码的语法分析和控制流图的构造,简化度量过程和实现,并提高度量处理的效率。  相似文献   

15.
嵌入式控制系统通常都有模式,比如启动模式、正常工作模式以及紧急模式等。程序模式是由其输入变量值范围组合构成的输入变量约束表达式表示的。基于源程序,获取其模式,不仅能够验证实现的模式与设计是否一致,还能够更加精确地计算程序的WCET。在对源程序进行分析的基础上,提出了一种自动获取程序模式的新方法。该方法基于C语言源程序,针对程序控制流程图,通过调整循环中节点流向以及去除与输入变量无关的节点,获得输入变量相关控制流程图ICFG,通过对ICFG每条路径建立线性规划问题并求解,获得每一个潜在的程序模式及其输入变量约束表达式。对基准程序的实验结果,表明了该方法的可行性和有效性。  相似文献   

16.
In recent years, applications of graph theory to computer software have given fruitful results and attracted more and more attention. A program graph is a graph structural model of a program exhibiting the flow relation or connection among the elements (statements) in the program.  相似文献   

17.
源代码相似程度分析在软件工程和计算机教学等领域都有重要的应用.软件工程领域的源代码盗窃和著作权纠纷仲裁,计算机教学领域的学生作业作弊分析都需要源代码相似程度的分析.良好的源代码相似程序分析软件还可以应用于相似代码聚类和搜索引擎的源代码搜索领域.尽管源代码相似程度分析问题由来已久,但是这个问题并没有令人十分满意和惊喜的研究结果.源代码有其特殊结构,使用传统的纯文本相似度分析显然是不合适的.将首先介绍这个问题的研究历史和进展,简单分析这个问题的难点所在,继而介绍一个新的基于程序控制流图分析的源代码相似程度分析系统,并给出其算法和实现细节.文章最后将分析这个方法的优劣所在,讨论这个方法的进一步改进方向.  相似文献   

18.
张术梅  孙辉 《微机发展》2007,17(1):125-127
测试用例的数量和质量决定软件测试的成本和有效性。文中提出了一种基于UML面向对象软件静态测试的方法,论述了软件测试方法的分类、静态分析方法的基本测试框架及具体实现流程。针对面向对象软件的特点,静态测试主要是通过分析源程序得到类关系图,使测试人员能快速而清晰地了解程序结构,有效地设计测试用例。探讨了在对源程序进行充分的词法分析与语法分析的基础上,提取程序中类的有关信息,利用了数据库技术和UML图形模型,从而保证了分析结果的准确有效和标准化。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号