内存泄露检测方式

  1.  使用 valgrind 这个工具,很多人都知道
    目前存在个问题,目前我还没找到解决方案
    ivTest 是可运行程序
    使用命令:valgrind --log-file=valReport --lead-check=full --show-reachable=yes --leak-resolution=low ./ivTest
    存在的问题是:对于一个大型的程序,里面会有很多警告,比如变量未初始化等等,一些误警报,导致超过报告的上限
    网上也有一些解决方案:但是我这边没有成功的试过.
    使用 --suppressions 参数,用来屏蔽不必要的error报错
    步骤1:先生成一个需要屏蔽的函数或者变量报错模板文件
    步骤2:自己查看报告文件,然后在这个模板文件里面添加相应的需要屏蔽的变量
    步骤3:重新引用这个这个报告文件,重新运行,就能去除掉,我们不想看到的误报警
    网上有参考方案:valgrind (三)--suppression文件_程序猿Ricky的日常干货的博客-CSDN博客
     
  2. 另一种方案是从别人那看到的,sanitize(内存检测工具)
    命令:gcc  -fsanitize=leak -llsan  test.c
    编译参数必须指定 -fsanitize=leak,如果检测非法内存则指定-fsanitize=address
    (需要链接库:libasan.a,)
    参考网址:内存检测工具sanitize_xxb249的博客-CSDN博客_fsanitize
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值