博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不只是内存分析工具~valgrind
阅读量:6711 次
发布时间:2019-06-25

本文共 1200 字,大约阅读时间需要 4 分钟。

体系结构:原理介绍·参考好文:

简单组一个摘要:

Valgrind包括如下一些工具:

  1. Memcheck。这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。这也是本文将重点介绍的部分。
  2. Callgrind。它主要用来检查程序中函数调用过程中出现的问题。
  3. Cachegrind。它主要用来检查程序中缓存使用出现的问题。
  4. Helgrind。它主要用来检查多线程程序中出现的竞争问题。
  5. Massif。它主要用来检查程序中堆栈使用中出现的问题。
  6. Extension。可以利用core提供的功能,自己编写特定的内存调试工具。

一下是自己常用的配置选项:

注意不能使用-O2进行优化
alias gcc='gcc -g -Wall -pg -ggdb -pedantic -Wextra' alias clang='clang-3.8 -Wall -g -pg -ggdb -pedantic -Wextra' 
alias g++='g++ -g -Wall -pg -fno-inline -ggdb -pedantic -Wextra'alias clang++='clang++-3.8 -g -Wall -std=c++11 -pg -fno-inline'

 

此工具要比gprof 好用, 

alias valgrind2='\valgrind --trace-children=yes --child-silent-after-fork=yes --time-stamp=yes --tool=callgrind'
alias callgrind_annotate='callgrind_annotate --auto=yes --tree=both --inclusive=yes'
valgrind2 ./exe.out callgrind_annotate callgrind.out.pid > exe.log

阅读源码,查看调用关系:

G?source开始一步步往下看

 

alias valgrind='valgrind --trace-children=yes --child-silent-after-fork=yes --xml=yes --xml-file=log.core --tool=memcheck --leak-check=full'
valgrind ./exe

 使用excel 查看该文件, kind列以及后面的5列, 查看。

比较实用gprof工具的情况:

-pg

 

posted on
2017-03-27 23:08 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/sanghai/p/6629401.html

你可能感兴趣的文章
为什么java web项目中要使用spring
查看>>
初赛小知识之存储器
查看>>
Chosen三级联动
查看>>
node安装和npm全局配置
查看>>
python新式类与旧式类
查看>>
js 事件模型
查看>>
Ubuntu 16.04 不能用inittab 设置 运行等级 runlevel
查看>>
asp.net源码坊2015-3月第二周TOP10下载排行
查看>>
看啦这么就别人的博客 我也来写一篇! Object转换其他类型
查看>>
UICollectionView官方使用示例代码研究
查看>>
Set接口
查看>>
java类库 collection与collections (转)
查看>>
关于在微信支付接口和支付宝接口中使用到的辅助函数
查看>>
学习网页编程(一)
查看>>
Windows Server 2008 安装好之后的简单配置
查看>>
MyCat原理及分布式分库分表
查看>>
redis基础_redis介绍
查看>>
WPF中。。DataGrid 实现时间控件和下拉框控件
查看>>
几种常用排序
查看>>
oracle win7下 卸载
查看>>