Linux下内存泄漏的动态跟踪分析

来源 :南开大学 | 被引量 : 0次 | 上传用户:liuzufang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
内存泄漏是一种常见的内存管理错误,它是由于程序动态分配内存后没有释放而造成的。内存泄漏的错误往往会引起忽视,因为短时间内它并不会暴露出来,但积累到一定的程度它就会导致系统运行效率下降甚至因为内存耗光而崩溃。因此,解决内存泄漏问题成为软件开发中的一个有较高实用价值的研究范畴。本文在对程序分析技术与内存泄漏检测技术进行一定研究的基础上提出了一种新的内存泄漏的检测方法,即基于GCC编译器的内存泄漏检测技术。该方法是在GCC编译过程中,直接分析被检测程序的中间表示形式,并插入了我们的监测函数,在运行中动态地收集相关数据信息,并采用了基于指针变量跟踪和引用计数的分析方法,精确定位造成内存泄漏的代码行。这种内存泄漏的检测方法所采用的关键技术及其特性主要体现在以下几点: ·基于GCC编译器的程序分析技术 基于GCC的语法树与RTL表示形式的程序分析技术,一方面获得了许多源程序特性的信息数据,避免了直接分析源程序代码的较高实现代价,另一方面,由于分析基于GCC编译器的中间表示层,因此实现了检测的平台无关性; ·指针变量跟踪分析 该技术通过跟踪所有指针变量的引用操作来获取程序的内存引用信息。它采用一个有关所有指针变量的信息库,运行中检查每一次对内存的引用操作,并及时更新信息库的信息,使得我们能够以最精确的方式跟踪每一次程序对内存的引用。 ·引用计数算法 采用了垃圾回收机制中的引用计数法,根据内存的引用计数的变化来检测程序中丢失的内存,因此能够在对程序动态跟踪分析的过程中,实时精确地定位造成内存泄漏的准确位置并给出详细的诊断信息。
其他文献
学位
随着计算机网络技术的不断发展,众多的企事业单位、政府部门将其核心业务向互联网转移,网络安全作为一个无法回避的问题呈现在人们面前。网络用户一般采用防火墙作为安全的第一
扩频通信采用伪随机编码调制,使用带宽要远大于信息数据所需带宽。接收端使用同步的伪随机序列进行相关解调恢复出原始信息数据。伪随机码的性能对扩频通信至关重要。传统的伪
随着航天事业的快速发展,为了提高飞机的运行稳定性和安全性,需要对各种飞机机轮进行静态力学性能测试。以验证机轮在最大静载荷和最大限制载荷下的承受能力。目前国内现有的两
本文对微观交通仿真的相关技术进行了研究。文章介绍了微观交通仿真研究的发展现状和研究意义,概述了动态OD估计、动态交通分配和系统参数校正的国内外研究进展;研究了动态OD矩
随着工控界对工控系统的开放性和标准化的愿望越来越迫切以及企业信息系统集成的需要,世界上领先的自动化公司和软硬件供应商在微软的技术支持下开发了一套工业标准—OPC规范
本文首先介绍了故障诊断的目的和意义,综述了目前各种故障诊断理论的研究情况,特别是基于小波分析的方法在故障诊断领域中的深入研究和广泛应用。研究分析了SS8电力机车主变流
SAR可以穿透云、雾和降水等覆盖物,拥有全天时、全天候的监测能力。在环境监测、水文观测、地形测绘、资源勘察和军事侦查等方面,这些特点使它具有独天得厚的优势。但是由于SAR
计算机断层成像(CT)作为一种无损的成像方式,使得医疗诊断有了革命性的发展,已经成为了现代放射科的基础设备。随着X射线探测器的快速发展,投影采集速度越来越快,人们对CT的重建速
三相中压异步电动机广泛用于工矿企业、交通运输和国防工业等国民经济各个领域的机械设备中,使用量大、范围广。而中压异步电动机的直接起动会产生很大的起动电流,一般可达额定电流的5~7倍,最大可达15倍。为了解决上述的问题,本论文研究的设备采用降压起动的方式来减小起动电流,采用开关变压器一次侧连接电动机定子,二次侧与晶闸管串联。本论文研究的中压异步电动机电压等级为6kv~10kv。 本论文系统介绍了