插桩valgrind_基于动态插桩的CC++内存泄漏检测工具的设计与实现.pdf

基于动态插桩的CC++内存泄漏检测工具的设计与实现.pdf

第32卷第6期 计 算 机 应 用 研 究 V01.32No.6

20l5年 6月 ApplicationResearchofComputers Jun.2015

基于动态插桩的C/C++内存泄漏检测

工具的设计与实现

曾佳平,杨秋辉 汪华龙,徐保平,黄 蔚

(四川大学 计算机 (软件)学院,成都 610065)

摘 要:针对c、c++程序常出现的内存泄漏、内存越界访 问、内存的不匹配释放等错误进行了研究,分析了现

有的内存错误检测工具和方法,在基于开源的动态二进制插桩框架Pin的基础上 ,采用函数族的内存信息块管

理方法和生命周期法,实现了在Linux平台下运行的内存检测工具MemGuard原型。该原型能有效地检测出内

存泄漏、内存越界访 问、内存的不匹配释放等问题,并通过与运行在Valgrind上的工具Memcheck的对比实验证

明了该原型的有效性 以及高效性。

关键词 :内存泄漏;动态二进制插桩;生命周期 ;MemGuard原型;Valgrind

中图分类号 :TP334 文献标志码:A 文章编号:1001—3695(2015)06·1737-05

doi:10.3969/j.issn.1001—3695.2015.06.030

Designandimplementationofmemoryleakdetectiontoolof

C/C++ basedondynamicinstrumentation

ZengJiaping,YangQiuhui,WangHualong,XuBaoping,HuangWei

(CollegeofComputer(Software),SwhuanUniversity,Chengdu610065,China)

Abstract:Thispaperstudiedtheissueofmemoryleak,cross.borderaccessmemory,thememory doesnotmatchtherelease

0fC orC++ program.Bystudyingtheexistingtoolsandmethods.thispaperusedthemethodofmemoryblockinformation

managementoffunction..basedfamilyandlifecycletodevelopaprototypeofmemory leakdetectiontoolMemGuardwhichwas

basedonPinofdynamicbinaryinstrumentationframeworkofopensource.Theprototypecaneffectivelydetectmemoryleaks.

cross.borderaccessmemory ,memory doesnotmatchtherelease.Finally,throughtheComparedexperimenttoMemcheckrun.

ningontheValgrindprovesthehigheffectivenessoftheprototypeofMemGuard.

Keywords:memoryleaks;dynamicbinaryinstrumentation;lifecycle;prototypeofMemGuard;Va】 nd

C、C++因其灵活性 、高效性等特点一直以来都是主流程 Pin,设计实现了一个动态内存检测工具MemGuard,能够检测

序设计语言之一。它们与Java等高级语言相 比,在编程 中程 C/C++中出现的内存泄漏 、内存访问越界、不匹配释放 、多重

序员需要自己管理内存 ,并对程序中所涉及的内存操作有很清

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值