全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

如何使用valgrind对代码进行内存泄露检测

时间:2023-10-04 14:56

人气:

作者:admin

标签: 内存  测试  Valgrind  代码 

导读:代码可能存在 内存泄露 怎么办? 使用 valgrind 可以对代码进行内存泄露检测。 valgrind下载安装 安装: 1 、tar –jxvf valgrind- 3 . 21 . 0 .tar.bz 2 2 、cd valgrind- 3 . 21 . 0 3 、./configure --prefix=/ho...

代码可能存在内存泄露怎么办?

使用valgrind可以对代码进行内存泄露检测。

valgrind下载安装

图片

安装:

1、tar –jxvf valgrind-3.21.0.tar.bz2
2、cd valgrind-3.21.0
3、./configure --prefix=/home/book/valgrind-3.21.0/install
4、make
5、make install

--prefix为指定安装路径,可以不指定,使用默认的,即执行./configure

内存泄露测试

测试程序test.c

分配40个字节的buffer,越界访问buf[10].

#include < stdio.h >
#include < stdlib.h >
#include < unistd.h >

void test()
{

        int *buf = (int *)malloc(10*sizeof(int));
        buf[10] = 0x55;

}

int main()
{
        test();
        return 0;
}

编译:

gcc -g -o test test.c

编译时注意加上-g选项

使用valgrinid测试:

./valgrind --leak-check=yes ./test

图片

结果显示,产生错误的地方在test.c15main函数中,即调用test()函数。具体的在test.c的第9行,test函数内,即buf[10] = 0x55;语句。

根据提示信息,可知valgrind检测到了2个错误:

  • 存在无效的写入数据,即数组越界访问
  • 内存泄露,分配了40字节没有释放
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信