首页 > 电脑专区 > 电脑教程 >

Linux下如何检查内存泄露

来源:互联网 2023-02-21 18:03:10 版权归原作者所有,如有侵权,请联系我们

内存泄漏是指程序中使用动态分配的内存由于某种原因程序未释放或无法释放,导致系统不能回收再利用,长时间运行导致程序运行速度减慢甚至系统崩溃等后果。如何检查内存泄露呢,下面我们以Linux为例,介绍几种常用的工具来检测内存泄露情况。6PB办公区 - 实用经验教程分享!

工具/原料

  • valgrind

valgrind

  • 1

    valgrind是一款开源的程序检测工具,百度valgrind下载。6PB办公区 - 实用经验教程分享!

    Linux下如何检查内存泄露6PB办公区 - 实用经验教程分享!

  • 2

    按照readme这个文档编译安装。6PB办公区 - 实用经验教程分享!

    Linux下如何检查内存泄露6PB办公区 - 实用经验教程分享!

  • 2此文章非法爬取自百度经验
  • 3

    使用valgrind检查程序test:6PB办公区 - 实用经验教程分享!

    valgrind --tool=memcheck --leak-check=full ./test6PB办公区 - 实用经验教程分享!

    (一些常用的选项,大家去官网查看)6PB办公区 - 实用经验教程分享!

    Linux下如何检查内存泄露6PB办公区 - 实用经验教程分享!

  • mtrace

  • 1

    mtrace为内存分配函数(malloc, realloc, memalign, free)安装hook函数。这些hook函数记录内存的申请和释放的trace信息。 详细说明可以使用man指令查看:6PB办公区 - 实用经验教程分享!

    man 3 mtrace6PB办公区 - 实用经验教程分享!

    Linux下如何检查内存泄露6PB办公区 - 实用经验教程分享!

  • 2

    在程序中包含头文件mecheck.h6PB办公区 - 实用经验教程分享!

    Linux下如何检查内存泄露6PB办公区 - 实用经验教程分享!

  • 3

    调用metrace()函数。6PB办公区 - 实用经验教程分享!

    Linux下如何检查内存泄露6PB办公区 - 实用经验教程分享!

  • 4

    更改环境变量,可以在代码中使用setenv函数。6PB办公区 - 实用经验教程分享!

    Linux下如何检查内存泄露6PB办公区 - 实用经验教程分享!

  • 5

    编译时需要加上-g这个编译选项。6PB办公区 - 实用经验教程分享!

    Linux下如何检查内存泄露6PB办公区 - 实用经验教程分享!

  • 6

    运行程序后可以看到生成的log文件里面的内存监测情况。6PB办公区 - 实用经验教程分享!

    Linux下如何检查内存泄露6PB办公区 - 实用经验教程分享!

  • 程序中加统计管理

  • 1

    在代码中对所有申请和释放的地方都加上计数,打印分析。这个比较简单但是不适用于很高高级语言。6PB办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!6PB办公区 - 实用经验教程分享!


    标签: LINUX操作系统检查泄露

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号