C/C++程序内存泄漏检测和分析技术的研究与实现
文献类型 | 学位 |
作者 | 黄瑶[1] |
机构 | 北京航空航天大学 ↓ |
授予学位 | 硕士 |
年度 | 2004 |
学位授予单位 | 北京航空航天大学 |
语言 | 中文 |
关键词 | 软件测试;内存泄漏;数据流分析;程序控制流程图 |
摘要 | 程序内存错误的检测是软件测试的重点和难点之一.内存泄漏的产生和体现具有隐蔽性和积累性的特征,往往容易被人们忽视.C/C++程序设计语言能够让程序员灵活而高效地进行动态堆内存的分配和释放,这是C/C++编程语言的重要优点之一;然而,由于程序的复杂性以及人类思维的局限性等主客观原因,程序员在利用C/C++编程语言这一特点管理动态内存时,很容易造成程序内存泄漏.如果不及时发现并解决程序中内存泄漏的问题,长时间运行存在内存泄漏的程序,将浪费大量宝贵的系统内存资源,从而导致系统运行速度减慢甚至系统崩溃等严重后果.为了提高软件的性能,保证软件的可靠性,检测C/C++程序的内存泄漏具有重要的意义.该文首先研究了国内外常见的内存泄漏检测方法.包括静态检测法、源代码插装法、目标码插装法、添加保护字节法等.目前各种内存泄漏检测系统仅能检测出被测程序中是否存在内存泄漏,提供分配动态内存的源代码位置信息,但缺少对内存泄漏产生路径和原因的分析.该文通过对内存泄漏动态检测法以及内存泄漏产生原因的分析与研究,提出了结合内存泄漏动态检测法、数据流分析以及程序执行路径跟踪技术的内存泄漏检测和分析方法,设计并实现了一个可支持MS Visual C++程序并且提供内存泄漏产生路径分析的内存泄漏检测和分析工具原型.首先,分析MS Visual C++Debugger内存调试机制,通过在被测程序中嵌入Visual C++的C运行时刻函数库内存调试函数来检测程序内存泄漏.然后,在SafePro/C++静态分析器CppSA的基础上,使用动态测试技术对检测出的内存泄漏结果进行数据流分析、程序执行路径分析.最后,对论文的工作进行了总结,同时也指出了今后的改进设想. |
影响因子:
dc:title:C/C++程序内存泄漏检测和分析技术的研究与实现
dc:creator:黄瑶
dc:date: publishDate:1753-01-01
dc:type:学位
dc:format: Media:北京航空航天大学
dc:identifier: LnterrelatedLiterature:北京航空航天大学.2004.
dc:identifier:DOI:
dc: identifier:ISBN: