问题
在运行代码时遇到了malloc():memory corruption 内存泄漏问题
网友说可以使用valgrind来检测,于是开始了我的摸索。
安装valgrind
- 从官网下载valgrind安装包
- 解压压缩包
- 从终端进入解压后的文件夹
./configure
make
make install
如果提示没有权限,则使用sudo make install
- 接着我们检查一下valgrind是否安装成功
valgrind --version
使用valgrind检测内存泄漏
首先我们先大致了解一下valgrind中包含的几个工具:
- memcheck:探测程序中内存管理存在的问题。它检查所有对内存的读/写操作,并截取所有的malloc/new/free/delete调用
- cachegrind:cache剖析器。它模拟执行CPU中的L1, D1和L2 cache,因此它能很精确的指出代码中的cache未命中
- helgrin