## 使用valgrind检查一般应用程序内存泄露 ```bash valgrind –tool=memcheck –leak-check=yes 应用程序名 ``` ## 使用valgrind检查mysqld内存泄露 编译选项增加: --disable-gperftools 如果需要进行代码覆盖: --enable-profiling --with-gcov --disable-gperftools 动态代码检查: ```bash valgrind --leak-check=full --show-possibly-lost=no --log-file=1.txt mysqld& ``` 线程竞争检查(通常不使用): ```bash valgrind --tool=helgrind --log-file=1.txt mysqld& ``` ## 使用valgrind生成监控信息 ```bash valgrind --tool=callgrind ./perf_test ``` 命令执行后自动生成记录文件,格式“callgrind.out.PIDXXX”,PIDXXX为进程ID。 ## 查看记录文件 ```bash callgrind_annotate callgrind.out.PIDXXX ``` ## 生成调用关系图 ```bash python ./gprof2dot.py -f callgrind ./callgrind.out.4988 | dot -Tpng -o g.png ``` 调用关系图: ![img](../../../../ff_internal_upload/img/2015/image120.png)