valgrind是一款可用于检测内存、分析函数调用的程序,程序内部可以仿真模拟指定的进程。
下载与安装
http://valgrind.org/downloads/current.html下载source code后,参照目录下的README文件安装:
- ./configure --prefix=安装路径(只可用绝对路径,安装后不要手动移动目录)
- make
- make install
成功安装后,在 安装路径/bin 下可运行valgrind
使用
valgrind --tool=可以选择想用的工具。这里介绍几个可用工具
memcheck
memcheck是内存检测工具,可以检测程序有无内存泄漏或是内存访问错误
valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --trace-children=yes 目标解析文件
如果知道进程id,也可以直接
valgrind --tool=memcheck --leak-check=full --trace-children=yes /proc/pid/exe
其中–trace-children=y选项表示要追踪子线程。执行后会从Main入口模拟运行一遍指定的程序,执行完后显示有无错误。