首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 229 毫秒
1.
葛瑶  李晓风  孔德光 《计算机工程》2008,34(16):159-161
设计与实现一个轻量级的堆内存泄漏检测工具,针对使用C++编码的开源代码,通过重载new, delete运算符,动态跟踪程序在执行过程中堆内存块的分配释放情况,在程序运行结束时给出内存泄露的检测结果。实现时采用红黑树管理所分配的堆内存,理论推导和实验表明其具有较高的效率。  相似文献   

2.
当前VxWorks操作系统缺少内存碎片的检测机制。通过增加内存统计信息,基于隐马尔可夫模型的检测程序分析出系统中哪些任务可能是造成内存碎片的根源。软件开发人员根据分析结果对可能造成内存碎片的代码进行优化,且优化前后的分析数据表明内存碎片问题得到了有效的改善,可满足嵌入式设备减少内存碎片的需求。  相似文献   

3.
在航天领域中,安全关键的大型实时软件系统往往直接影响到任务成败,一般难以全面检测、分析或避免内存泄漏等常见内存错误。定义了实时软件的12种典型内存故障模式,提出了一种基于C++代码插装的实时软件内存错误快速分析方法。该方法通过对C++源代码进行静态分析,获取指针变量相关信息;通过C++代码插装和运行不同测试用例,实时收集统计C++指针对象的分配、释放、赋值、c-use和p-use使用情况,结合实时软件的典型内存故障模式进行分析,并自动生成详情报告。应用案例表明,该方法能够高效快捷地发现实时软件潜在的典型内存错误,从而有效提高软件质量。  相似文献   

4.
基于局部堆内存抽象表示的堆操作程序内存泄露检测   总被引:1,自引:0,他引:1  
堆操作程序通过共享易变数据结构可灵活地申请、合并、删除堆内存.这类程序的内存泄漏检测要求精确的域敏感的指针别名信息,变得尤其复杂和难以处理.针对这个问题,提出了基于“指针扩展类型”域敏感的堆内存抽象方法,对指针变量在形态上的排列关系进行抽象以支持堆的局部推理.首先,定义了各种基本语句的操作语义,然后基于该抽象方法采用前向数据流迭代算法提出了一种新的内存泄露检测算法.在Crystal编译框架下实现了面向C程序的内存泄漏检测原型工具Heapcheck,该工具支持复杂数据结构内指针型数据域上的内存泄露检测.在典型基准C程序上的实验结果分析表明,该方法与现有的技术相比在效率和精度上都具有优势.  相似文献   

5.
软件测试中代码分析与插装技术的研究   总被引:2,自引:0,他引:2       下载免费PDF全文
软件测试作为软件工程的重要组成部分对提高软件质量和可靠性起到了不可忽视的作用。软件白盒测试自动化工具WBoxTool中对标准C/C++程序进行了可视化的插装和监视,收集程序动态运行信息,并进行可靠的测试分析。该文介绍了在工具WBoxTool中使用的代码分析和插装测试技术,并给出插装测试方法的一些实例应用和分析。  相似文献   

6.
内存泄露是一种常见的系统安全问题。虚拟技术是云计算的关键技术,虚拟机环境下的内存泄露不容忽视。而基于虚拟机的内存泄露检测技术尚未成熟。分析虚拟机Xen内核源码中与内存分配有关的代码,提出一种动态检测虚拟机中内存泄露的方法。该方法记录应用程序对资源的申请、释放以及使用情况,插入监测代码,最终检测出内存泄露的代码。实验结果表明,该方法能够有效地检测Xen虚拟机中的内存泄露。  相似文献   

7.
为实现基于静态分析技术自动的检测C程序中的非法计算缺陷,提出了一种基于区域内存模型进行非法计算缺陷检测的方法。对C程序中的非法计算缺陷操作归纳总结出其受限集,以对相应运算进行约束;通过抽象的区域内存模型表示实际的内存存储,实现了基于抽象内存区域内存模型的数据流分析;基于数据流分析的结果,判定C程序中的受限操作是否违背受限集的约束,以实现非法计算缺陷的检测。5个实际工程的检测结果分析表明,该方法可有效地检测出C程序的各类非法计算缺陷。  相似文献   

8.
Linux平台下基于源代码插装的动态内存检测   总被引:1,自引:0,他引:1  
在C/C++语言程序中.指针的使用使代码灵活、简便.但所带来的类似内存泄漏、内存写溢出等的内存使用的错误却很难分析和消除.针对这些容易出现的内存使用错误.提出了Linux平台下一种基于源文件信息提取和源代码插装的动态内存检测方法,设计实现了一个动态内存检测模块DDMEM.可以检测源代码的内存泄漏、内存写溢出、释放野指针和内存管理函数的不匹配等问题.给出了写溢出错误的一个实例检测,以验证方法的有效性.  相似文献   

9.
以broadcom公司的5836MIPS处理芯片为平台,详细分析嵌入式系统在vxworks下的引导程序中MIPS处理器初始化和内存接口控制单元扫描过程.结合嵌入式系统开发特点,实现一种引导程序中汇编级内存故障检测的方法,保证引导程序的正确执行.  相似文献   

10.
Linux操作系统、嵌入式系统、航电系统、通信系统等一般都是用C/C++语言进行编写。因为C语言具有偏底层硬件、移植性强、执行效率高等优秀特性。但是随着多核并行机的出现,许多语言也开始支持多线程编程。由于C语言本身存在着对内存访问时,不对内存边界进行检查的问题,从而造成软件系统相关的可靠性和安全性问题。对多线程C语言程序来说,由于多线程程序的不确定性,使得运行时验证多线程C程序的内存安全问题变得更加困难。通过使用基于改进的指针运行时验证技术、多核多线程技术、并行计算、无锁数据结构技术、源代码插桩技术方法,并结合开源工具Clang编译器实现原型工具Movec对多线程C程序的支持。该工具实现了对多线程C程序内存安全问题的运行时验证。然后通过Mibench和SARD测试用例进行实验,验证了该工具对多线程C程序进行运行时验证的有效性。  相似文献   

11.
C语言作为安全关键软件的主要实现语言,其存在的内存泄漏缺陷具有很高的隐蔽性和危害性,如何保证内存泄漏检测的准确性和高效性是一大挑战。静态分析具有直接分析源码、能够较早发现软件错误,从而降低修复代价的优势。基于静态分析技术,提出了一种基于路径敏感的值流分析的内存泄漏检测方法,首先进行指针分析生成精确指向信息;然后基于指向信息构建值流约束,执行可达性分析以识别程序中的泄漏路径;最后借助指针与内存地址的有效生命周期进行验证。在典型基准C程序上的实验结果分析表明,本文方法与现有技术相比在效率和精度上都具有一定优势。  相似文献   

12.
通过编译的C++程序代码并不一定保证代码中不存在缺陷。代码中可能依然隐含了安全、设计或是风格上的缺陷,从而导致程序运行时出现内存泄露、指针误用等现象,或导致程序代码不清晰、可读性差。为了有效查找这些缺陷,探讨了可定制缺陷规则的C++代码缺陷自动检测技术,介绍了两种缺陷定位方法,给出了一种基于XPath技术的缺陷规则定制方法,设计并实现了一种代码缺陷自动检测工具CDD(C++ defect detector),并通过实验证明了缺陷定位方法的有效性以及CDD的易用性。  相似文献   

13.
内存泄漏是软件开发中的一个难以定位和修正的严重错误。在大多数情况下,动态内存的有效域虽未明确写出,但仍是程序的局部;且程序动态运行的轨迹在一定程度上反映程序的静态性质。基于以上观察,开发了在面向函数定位框架中嵌入动态分析的内存泄漏监测新方法。新方法中,先建立程序的函数动态调用树,其中包含程序分配释放内存的信息,再在调用树中总结程序的静态性质,为内存泄漏定位提供有价值的信息。该文用两个实例展示这个方法的有效性。  相似文献   

14.
利用虚拟化平台进行内存泄露探测   总被引:3,自引:0,他引:3  
文中利用虚拟机管理器,透明地记录应用程序对资源的申请、释放以及使用情况,提供了探测内存泄露的辅助信息.此机制首先不需要修改或重新编译源程序;其次,带来的性能损失很小.两者结合可以构建在线内存泄露探测和汇报机制.不仅如此,基于虚拟机环境的内存泄露探测还具备通用性,且不需要特殊的硬件支持.所有这些特性,是已有的解决方案所不能兼有的.实验结果表明:基于虚拟机环境的内存泄露探测机制具有实用性,性能损失也被控制在10%以内,能够运用在实际的生产环境中.  相似文献   

15.
内存泄漏是C/C++程序的一种常见的、难以发现的缺陷,一直困扰着软件开发者,尤其是针对长时间运行的程序或者系统软件,内存泄漏的后果十分严重.针对内存泄漏的检测,目前主要有静态分析和动态测试两种方法.动态测试实际运行程序,具有较大开销,同时依赖测试用例的质量;静态分析技术及自动化工具已经被学术界和工业界广泛运用于内存泄漏缺陷检测中,然而由于静态分析采取了保守的策略,其结果往往包含数量巨大的误报,需要通过进一步人工确认来甄别误报,但人工确认静态分析的结果耗时且容易出错,严重限制了静态分析技术的实用性.本文提出了一种基于混合执行测试的静态内存泄漏警报的自动化确认方法.首先,针对静态分析报告的目标程序中内存泄漏的静态警报,对目标程序进行控制流分析,并计算警报的可达性,形成制导信息;其次,基于警报制导信息对目标程序进行混合执行测试;最后,在混合执行测试过程中,监控追踪内存对象的状态,判定内存泄漏是否发生,对静态警报进行动态确认并分类.实验结果表明该方法可以对静态内存泄漏警报进行有效的分类,显著降低了人工确认的工作量.实验详情参见:http://ssthappy.github.io/memleak/.  相似文献   

16.
安鑫  康安  夏近伟  李建华  陈田  任福继 《计算机应用》2005,40(10):3081-3087
异构多核处理器已成为现代嵌入式系统的主流解决方案,而好的在线映射或调度方法对其充分发挥高性能和低功耗的优势起着至关重要的作用。针对异构多核处理系统上的应用程序动态映射和调度问题,提出一种基于机器学习、能快速准确评估程序性能和程序行为阶段变化的检测技术来有效确定重映射时机从而最大化系统性能的映射和调度解决方案。该方案一方面通过合理选择处理核和程序运行时的静态和动态特征来有效感知异构处理所带来的计算能力和工作负载运行行为的差异,从而能够构建更加准确的预测模型;另一方面通过引入阶段检测来尽可能减少在线映射计算的次数,从而能够提供更加高效的调度方案。最后,在SPLASH-2数据集上验证了所提出调度方案的有效性。实验结果表明,与Linux默认的完全公平调度(CFS)方法相比,所提出的方法在系统计算性能方面提高了52%,在CPU资源利用率上提高了9.4%。这表明所提方法在系统计算性能和CPU资源利用率方面具备优良的性能,可以有效提升异构多核系统的应用动态映射和调度效果。  相似文献   

17.
安鑫  康安  夏近伟  李建华  陈田  任福继 《计算机应用》2020,40(10):3081-3087
异构多核处理器已成为现代嵌入式系统的主流解决方案,而好的在线映射或调度方法对其充分发挥高性能和低功耗的优势起着至关重要的作用。针对异构多核处理系统上的应用程序动态映射和调度问题,提出一种基于机器学习、能快速准确评估程序性能和程序行为阶段变化的检测技术来有效确定重映射时机从而最大化系统性能的映射和调度解决方案。该方案一方面通过合理选择处理核和程序运行时的静态和动态特征来有效感知异构处理所带来的计算能力和工作负载运行行为的差异,从而能够构建更加准确的预测模型;另一方面通过引入阶段检测来尽可能减少在线映射计算的次数,从而能够提供更加高效的调度方案。最后,在SPLASH-2数据集上验证了所提出调度方案的有效性。实验结果表明,与Linux默认的完全公平调度(CFS)方法相比,所提出的方法在系统计算性能方面提高了52%,在CPU资源利用率上提高了9.4%。这表明所提方法在系统计算性能和CPU资源利用率方面具备优良的性能,可以有效提升异构多核系统的应用动态映射和调度效果。  相似文献   

18.
孙小祥  陈哲 《计算机科学》2021,48(1):268-272
随着软件运行时验证技术的发展,出现了许多面向C语言的运行时内存安全验证工具.这些工具大多是基于源代码或者中间代码插桩技术来实现内存安全的运行时检测.但是,其中一些没有经过严格证明的验证工具往往存在两方面的问题,一是插桩程序的加入可能会改变源程序的行为及语义,二是插桩程序并不能有效保证内存安全.为了解决这些问题,文中提出...  相似文献   

19.
为了获取组合测试中适应值函数所需要覆盖率、测试运行代价等信息,设计实现了基于嵌入式软件源代码插桩的指标获取方案。该方案使用交叉开发环境,完成了对源代码语法、词法分析,插桩库和插桩策略的制定,目标机/宿主机通讯方式设计,获得了语句覆盖率、分支覆盖率、运行时间、被测程序程序复杂度等关键指标,并以图表的方式提供统计结果,为组合测试设计适应值函数,进行测试用例约减提供了依据。  相似文献   

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

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