使用valgrind检查一般应用程序内存泄露

snippet.bash
valgrindtool=memcheck –leak-check=yes  应用程序名

使用valgrind检查mysqld内存泄露

编译选项增加:
–disable-gperftools

如果需要进行代码覆盖:
–enable-profiling –with-gcov –disable-gperftools

动态代码检查:

snippet.bash
valgrind --leak-check=full --show-possibly-lost=no --log-file=1.txt mysqld&

线程竞争检查(通常不使用):

snippet.bash
valgrind --tool=helgrind --log-file=1.txt mysqld&

使用valgrind生成监控信息

snippet.bash
valgrind --tool=callgrind ./perf_test

命令执行后自动生成记录文件,格式“callgrind.out.PIDXXX”,PIDXXX为进程ID。

查看记录文件

snippet.bash
callgrind_annotate callgrind.out.PIDXXX

生成调用关系图

snippet.bash
python ./gprof2dot.py -f callgrind ./callgrind.out.4988 | dot -Tpng -o g.png

调用关系图:

img