valgrind工具
来源:互联网 发布:家用电脑主机 知乎 编辑:程序博客网 时间:2024/05/02 04:53
valgrind提供了一个用于编写动态分析工具的框架。该框架目前已经实现了一些标准的动态分析工具,包括:
- MemCheck, 用于检测内存错误。
- Cachegrind, 用于分析cache和分支预测情况。
- Callgrind, 可以用于交互式地分析函数的动态调用过程。
- Helgrind和DRD, 用于检测线程错误。
- Massif和DHAT, 用于分析堆的使用。
- Ptrcheck,用于检测heap、stack和全局数组的overflow。
- BBV,是一个类似SimPoint的分析工具,可以辅助系统体系结构的研究。
先试图猜一下各种工具的实现思路,等以后有机会看过源码, 再来纠正。
1. MemCheck
内存错误包括,数组越界访问,段错误等。除了内存错误以外,常见的问题还包括内存泄漏。内存相关问题大部分是由于寻址引起的,而指针类型作为能够修改地址,因而经常是很多内存问题的根源。指针相关地问题,包括访问未初始化指针,指针运算越界,内存泄漏等。
检测数组越界,应该可以通过在数组访问前,将数组索引变量的值与数组定义时的长度进行比较来实现。
检测段错误,应该可以通过段的属性标志来部分实现。
检测访问未初始化指针,应该用静态分析方法。
检测内存泄漏,应该是访问堆管理器的接口实现。
2. Cachegrind
分支预测情况,可以通过访问相关的硬件计数器实现。
cache的命中情况,也可以通过访问相应的硬件计数器实现。
3. Callgrind
函数的调用过程,可以通过访问活跃记录的链接来实现。
4. 指令和数据profiling
可以在执行每条指令前,打印出当前地IP值得到指令的逻辑地址profiling。如果要得到指令的物理地址的profiling,则需要访问TLB——对TLB接口尚无概念。如何得到数据的逻辑地址?如果要得到数据的物理地址profiling,则同样要访问TLB。
- valgrind工具
- valgrind工具
- Valgrind内存调试工具
- valgrind是个好工具
- valgrind工具使用解析
- valgrind内存检查工具
- 一点Valgrind工具心得
- (1)Valgrind工具集
- Valgrind工具使用
- valgrind工具使用详解
- valgrind工具之massif
- Valgrind工具的使用
- Valgrind 性能分析工具
- linux valgrind调试工具
- Valgrind 工具概述
- Linux 内存调试工具- Valgrind
- 内存检查工具Valgrind介绍
- valgrind Linux内存分析工具
- ZOJ 3203 计算几何+三分
- android PowerManager(电源管理) wakelock(屏幕锁)
- Notification使用详解之三:通过服务更新进度通知&在Activity中监听服务进度
- 使用Apache HttpClient实现多线程下载的小例子
- 关于postgresql索引使用的一个问题
- valgrind工具
- 剪纸效果制作
- vc调试时默认的相对路径
- DELPHI 线程的终止和退出
- .net中switch的使用
- 相同字段显示为空
- 2011.7.21
- shell 笔记 控制结构
- linux系统中大文件分割的方法