valgrind使用心得

来源:互联网 发布:淘宝商家贴吧 编辑:程序博客网 时间:2024/06/01 07:51
valgrind下面包含多个工具:


memcheck
可以检查:1、使用未初始化内存
 2、使用已释放内存
 3、访问内存越界
          4、申请空间是否释放
          5、申请释放内存的匹配
          6、memcpy的源和目的是同一个指针


callgrind
收集运行数据,函数调用关系等信息


cachegrind
模拟cpu缓存,检查cache丢失和命中。以及每行代码,每个函数,每个模块,整个程序产生的指令数


helgrind
检查多线程竞争问题


massif
检查程序堆栈使用了多少内存


///////////////////////////////////////////////////////
常用命令
检查./app的内存,给出详细泄露信息,,检查子线程,以xml格式输出,输出到log.xml中

valgrind --tool=memcheck --leak-check=full --show-reachable=no --trace-children=yes --xml=yes --log-file='log.xml' ./app

如果全局指针指向一块内存,在程序结束时没把指针设成NULL,却用--show-reachable=yes的话,就会报告memory still reachable。

原创粉丝点击