【摘 要】
:
C程序中内存泄漏的检测是C程序软件测试的重点和难点之一。由于C程序具有灵活高效的优点,从C语言的诞生到现在,都作为一种主流程序设计语言一直被广泛使用。C语言使得用户能
论文部分内容阅读
C程序中内存泄漏的检测是C程序软件测试的重点和难点之一。由于C程序具有灵活高效的优点,从C语言的诞生到现在,都作为一种主流程序设计语言一直被广泛使用。C语言使得用户能够直接控制程序内存资源的使用,这对于实现运行程序的高性能或提高计算机资源的利用率是至关重要的。但正是因为C语言中灵活的内存管理机制,使C程序很容易产生内存泄漏等内存方面的程序错误。内存泄漏故障在C中是非常危险的,通常难以观察到的,但随着故障的积累,程序的整体性能会下降,严重时会导致死机或异常退出。因此内存泄漏的检测至关重要!本文首先研究了内存泄漏检测技术的发展情况以及内存泄漏的特征和产生原因,并分析了国内外常见的内存泄漏检测方法,包括静态检测法、动态检测法等,并对比他们的优缺点。之后本文实现了静态检测工具DTSC,实现了对程序的语法分析,词法分析,生成符号表和控制流图,并在此之上实现了对程序中各个变量的区间分析,使得分析的准确性大大提高。之后实现了拓展性强的缺陷模式状态机,搭建了一个针对故障的强有力的静态检测平台。然后通过研究C语言中内存泄漏故障产生的错误代码,总结出产生内存泄漏代码的模式。根据这些的模式设计并实现DTSC的内存泄漏模型,并用该模型对C程序进行检测。最后,本文将检测结果与国外静态检测工具的检测结果进行比较,分析DTSC和内存泄漏模型的优点和不足,并完善内存泄漏模型,提出DTSC改进方案。
其他文献
云存储是在云计算的概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术。云存储利用集群应用和分布式文件系统等软件,将网络中大量类型不同、容量不同的存储设备
语音不仅是人类日常交流中的重要工具,也是百万年来哺乳动物大脑进化的结果。这项复杂的功能是区分人类和其他动物的重要标志,包括了大脑对语言从声音到图形乃至抽象符号层面
随着计算机软件对人们生活的影响的逐渐扩大,人们对软件的数量和质量的需求也日益提高。在软件开发和维护过程中存在的一系列问题,被称为“软件危机”。其中,一个重要因素就
移动Ad Hoc网络是目前国内外计算机网络技术研究领域的一个热点,路由协议是AdHoc网络的核心技术之一。为了提高AdHoc网络路由协议的性能,国内外很多学者和专家开始研究基于位
在分布式协作开发环境中进行系统设计工作时,要求处于不同机器上的设计工具之间能够通过网络相互通信,从而使得各个设计工具可以相互协作,这需要开发网络通信软件来提供相应
针对XML文档的访问控制保证XML文档中的敏感信息不会受到非授权的访问。用户对文档的访问包括读操作和更新操作,现有的XML文档访问控制研究多数都以读操作为例或对更新操作的
语音识别经过半个世纪的发展,其理论研究已经取得了一定的成果,在实验室环境中取得了极高的识别率,并且已经从实验室走向实用。然而离人们所期望的语音识别能力跟人一样的目
分布式垂直搜索引擎技术是传统的垂直搜索引擎技术和分布式技术的结合,它利用多台计算机构成一个分布式计算与处理集群,可以解决垂直搜索引擎面对大规模网页数据时容易出现的响
计算机艺术是一门科学与艺术相结合的新兴交叉学科,它向人类提供了一种全新的艺术创作手段,展示了全新的艺术思想和艺术作品。近年来,非真实感绘制技术(Non—Photorealistic Ren
数据本身存在不确定性、采集的随机性及不精确性,如在地质测量、天文观测、气象、传感网络、移动对象搜索和数据集成等实际应用中,由于复杂的外界因素的影响使得采集到的数据