面向C语言程序内存泄漏的动态确认技术

来源 :南京大学 | 被引量 : 0次 | 上传用户:hero_1205
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
内存泄漏是一类显著影响软件性能、有效性和安全性的程序缺陷。面向内存泄漏的静态分析和动态测试技术得到了广泛而深入的研究。静态分析技术能够发现程序中较多的缺陷,但其并不实际执行目标程序,往往报告出的大量警报中含有误报成分。人工地确认这些警报的正确性是一项沉闷而耗时的工作,其限制了静态分析技术在软件开发中的实用性。针对内存泄漏的动态测试技术则依赖于高质量的测试用例集合,且动态检测技术具有较高的运行时开销。在本文中,我们提出了一种验证并分类内存泄漏静态警报的动态确认技术,以降低人工确认静态内存泄漏警报的时间和人力成本。本文给出了对内存泄漏静态警报进行分类的标准,从而将静态泄漏警报划分为几个类别,开发人员可以对不同类别的警报给予区分处理。在本文的方法中,静态警报包含了疑似泄漏对应的程序路径片段。我们利用测试生成方法产生的测试输入来在运行时覆盖这些路径片段,并追踪运行时内存对象的状态。在运行时收集的状态信息和对静态警报的测试覆盖情况,将被用于确认和分类内存泄漏的静态警报。具体来说,本文的主要工作如下:1.提出并形式化地描述了对内存泄漏静态警报进行分类的方法。静态内存泄漏警报被分类为四个类别:MUST-LEAK, LIKELY-NOT-LEAK, BLOAT,和MAY-LEAK。其中,MUST-LEAK类的警报揭示了没有被释放的内存对象。虽然我们无法给出理论上的保证,我们认为LIKELY-NOT-LEAK类的警报有很大可能是误报。BLOAT类别的警报虽然也不是真正的泄漏,但其揭示了一种低效率的使用情况,这类警报可以被修复以提高程序的整体性能。经过上述分类后,对静态警报的人工确认将主要集中在MAY-LEAK类别的警报上,从而降低了人工确认静态警报的成本。2.基于确认和分类静态内存泄漏警报的标准,建立了面向内存泄漏的动态确认方法的基本框架。该基本框架包含了获取内存泄漏静态警报、对静态泄漏警报和程序代码进行预处理、测试生成、运行时追踪和分类等几个方面的工作。在此基础之上,提出基于符号执行的动态确认方法SymVal和基于混合执行的动态确认方法ConcVal。同时,通过利用静态警报中疑似路径片段的信息,本文还提出了一种路径导向的混合执行算法,用于优化ConcVal方法中的测试生成工作。我们还详细描述了如何利用运行时对内存对象状态的记录和更新操作,对静态内存泄漏警报进行分类。3.基于上述工作,实现了动态确认内存泄漏警报的SymVal和ConcVal方法,并通过实验研究来评估这些工作。我们选取了来自不同程序包的十个基准程序进行实验,并从准确性、可用性和时空开销等角度论述了本文方法的有效性。另外,我们还针对具有一定规模的程序texinfo进行了实例研究,从可扩展性和实用性的角度论述并验证了本文提出的方法。
其他文献
随着智能Agent和多Agent 系统向前迅猛的发展,为建立现有系统和提供一个并驾齐驱的最新发展的基础,维持的一个一致的世界视点是越来越重要了.使用形式化概念可以对给定的复杂
虚拟现实是一种高度逼真地模拟人在自然环境中视、听、动等行为的人机界面。图形生成是虚拟现实的一项关键技术。本文主要研究虚拟现实中建模技术的应用,讨论了传统建模技术和
本论文研究并实现了一个PCI/ISA桥。PCI/ISA桥是PC机系统中南桥芯片的一个重要组成部分,其功能是进行PCI总线和ISA总线协议之间的转换,实现PCI设备和ISA设备的跨总线相互通信。
该文以MPEG压缩视频为研究对象,进行了视频分段和特征分析的研究工作,并根据分析结果提取关键帧,进行镜头聚集,从而实现直接对压缩视频的快速访问.我们首先通过分析MPEG压缩
该文研究的视景系统是总装备部项目“新装备综合保障系统”的子系统.研究重点是对网络虚拟现实中的视景生成技术和视景子系统之间的交互仿真方法进行研究.1.实现了该视景系统
本文首先介绍了计算机领域的安全需求,根据美国国防部的可信计算机评测标准(TCSEC)和计算机信息系统的通用安全评价准则(Common Criteria for IT Security Evaluation,CC)中提出的
该论文分为五大部分.第一部分介绍了需求工程研究的现状以及存在的问题,提出课题的研究目标,该文的核心是需求工程中的需求管理方案;第二部分阐述了需求工程的相关理论;第三
同步技术是嵌入式系统与传统PC应用软件实现交互以及未来移动终端共享网络资源的关键技术。本文讨论如何设计和实现一个采用驳接方式连接的掌上平台和桌面系统间的同步软件。
该文对数字图书馆中的元数据进行比较全面和深入的研究,设计了一个支持互操作的元数据体系结构ISMA(Interoperability-Supported Metadata Archietecture),并对其中关键技术进
为了解决各运营商之间或小交换机与运营商之间的非法主叫带来的计费纠纷和主叫显示问题,运营商急需在程控交换机上实现主叫号码的识别和变换功能。本文主要研究了主叫号码识别