C++ ——一文读懂:Valgrind 检测内存泄漏
安装
Valgrind 可以用来检测程序是否有非法使用内存的问题,例如访问未初始化的内存、访问数组时越界、忘记释放动态内存等问题。在 Linux 可以使用下面的命令安装 Valgrind
wget ftp://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2
bzip2 -d valgrind-3.13.0.tar.bz2
tar -xf valgrind-3.13.0.tar
cd valgrind-3.13.0
./configure && make
sudo make install
检测内存泄漏
valgrind --tool=memcheck --leak-check=full 编译出的可执行文件valgrind --tool=memcheck --leak-check=full --track-origins=yes
统计内存
sudo apt-get install valgrind 1️⃣ 生成 Massif 输出
# 假设你的程序叫 your_program,运行命令:valgrind --tool=massif --massif-out-file=massif.out.%p /mnt/perception/zhaoxiaohu/re-injection/perception_platform2/install/autodrive/lib/autodrive/sanet25_det
#这会生成一个类似 massif.out.<pid> 的文件,例如:massif.out.12345
# 如果你的程序比较复杂,可以加上:
valgrind --tool=massif --massif-out-file=massif.out /mnt/perception/zhaoxiaohu/re-injection/perception_platform2/install/autodrive/lib/autodrive/sanet25_det#可视化查看(推荐 GUI):
massif-visualizer(Linux GUI 工具):
sudo apt install massif-visualizer # Ubuntu/Debian
massif-visualizer massif.out.900214