基于MSVL编译器的内存泄漏动态检测

来源 :西安电子科技大学 | 被引量 : 0次 | 上传用户:tjtcqp
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机科学技术的不断进步,人们对计算机应用的需求日益迫切,进而对软件的质量提出更高的要求和期望。如何有效的管理内存,防止泄漏成为突出的问题。内存泄漏是一种常见的系统安全问题,用户一般都感觉不到它的存在,但是如果执行那些长期运行的大型软件系统,存在内存泄漏的话就可能导致很严重的后果。随着内存泄漏的堆积,程序的整体性能下降,最终可能导致程序终止或电脑死机,造成无法挽回的系统故障,因此检测内存泄漏至关重要。本文首先研究了内存泄漏相关知识和检测技术、时序逻辑语言MSVL的语法语义,并深入了解MSVL编译器的工作原理,即把MSVL程序转化为LLVM的中间代码IR,之后生成可执行代码。然后,在MSVL编译器的基础上设计并实现了对MSVL程序的内存泄漏动态检测,具体方法就是在程序执行到IR阶段对其动态插桩获取内存的相关信息。例如内存首地址、内存块大小、指向这块内存的变量名、所在函数名、行号,当源程序中遇到分配内存、赋值、释放内存的操作以及进出函数时对内存相关信息进行存储和管理,当程序执行结束后会有相应的数据结构存储泄漏的相关信息,主要包括泄漏的总个数、丢失内存型泄漏的个数、每块泄漏内存的信息、每块动态分配过的内存在源程序中使用到的所有行号信息,每处泄漏会提供分配内存语句所在的行号、该内存最后一次使用所在的行号、造成泄漏的语句所在的行号,用户可通过行号追踪每块内存的使用情况和相关语句的执行路径,方便对程序进行分析和修改。最后,对基于MSVL编译器的内存泄漏动态检测工具进行了功能测试以及实际应用测试。实验结果表明,基于MSVL编译器的内存泄漏动态检测工具在实用性、可靠性、维护性等方面表现良好,并通过和Memory Validator工具作对比得出,本文所实现的工具比Memory Validator工具所提供的泄漏信息更加全面。
其他文献
近年来,我国汽车的数量逐年增多,汽车的经销商和配件的生产企业数量也在不断增多。当汽车的配件发生故障时,消费者首先需要到车辆的经销商获取索赔。之后,车辆的经销商会向车
随着通信技术的不断发展,第五代通信系统(5G)需要满足多种终端设备同时接入和多样化的业务需求,以及系统频谱效率(Spectral efficiency,SE)与能源效率(Energy efficiency,EE)
考察国民党的学习效能有助于认识其执政能力。1927年南京国民政府建立以后,逐渐统一全国。中国国民党也由革命党转变为执政党。按照“以党训政”“以党治国”的理念,该党将在
2011年底由韩国国立国际教育院与国家汉办签署了《韩·中教师交流合作协议》,2012年正式确立CPIK项目主管运营汉语教学工作。国家汉办每年向韩国中小学输出大量志愿者教师,以协助韩国本土教师工作。由此在韩国的汉语课堂中产生一种新的教学模式——协作教学,这一模式在韩国初中与高中的汉语课堂上得到了极大的推广与应用。成为了韩国汉语教学的主要教学模式,研究协作教学对韩国汉语教学具有重要意义。大邱作为韩国的
本研究通过对日本乙型脑炎减毒活疫苗(SA14-14-2株)和日本乙型脑炎病毒贵州分离强毒株(GZ株)细胞培养物总RNA的提取,RT-PCR方法分别扩增出NS1、NS2A和NS1-NS2A基因,并对其进
溶剂效应的实验和理论研究不仅对化学反应机理、有机物反应活性、谱学性质等的探究提供数据支持,更对筛选反应溶剂,优化反应条件具有现实意义。本文运用FT-IR法研究了4-乙酰
随着计算机及互联网技术的发展,人们的生活同信息安全联系得日趋密切。信息安全技术的应用已涉及到了社会的各行各业。在电子商务、电子政务、网上银行和网购平台逐渐成为社
无线通信的迅猛发展使得消费者对高品质、大容量通信的需求越来越紧迫,而现有的通信体制以及紧缺的频谱资源已很难解决上述问题。多输入多输出(Multi-input and Multi-output
Hilbert空间中框架的概念是由Schaeffer和Duffin两位数学家在1952年研究非调和Fourier级数时首次提出的.Hilbert空间中的框架是具有类似于基的性质的一个冗余向量组.在信号处
腈类化合物是有机合成中一类重要的中间体,可以作为合成胺、酰胺、酮、羧酸和酯等化合物的原料。此外,腈类合物在生物医药、农药、功能材料和香料等领域也有广泛的应用。腈类