最近在进行视频编解码工作中出现了内存泄露等问题,查看代码所有申请的内存均已释放,无奈开始研究使用内存检测泄露工具。
环境:ubantu18.04
一、 安装
- 下载------wget http://www.valgrind.org/downloads/valgrind-3.14.0.tar.bz2
- 解压------tar -jxf valgrind-3.14.0.tar.bz2
- 安装依赖------sudo apt-get install automake
- 创建安装路径------mkdir /home/hang/valgrind
- sudo ./autogen.sh
- ./configure --prefix=/home/hang/valgrind
- make
- make install
- 验证是否安装成功
cd /home/hang/valgrind/bin
./valgrind --leak-check=full ls -l - 安装成功
安装成功
二、测试
- 编译C程序-----gcc -g -o decode decode_new.c -I./include/ -L./lib/ -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice -ldl -lpthread -lm
[注意:(1)注意gcc的指令与正常的编译时文件的书写顺序不一样]
[ (2)此指令为我的程序的编译指令,参考不要一致 ] - 使用valgrind检测
(1)运行指令------/home/hang/valgrind/bin/valgrind --tool=memcheck --leak-check=full ./decode
(2)
运结果显示出语出内存的申请位置和溢出内存的大小
(=完=)