Advertisement

Linux环境内存泄漏检测工具vargrind

阅读量:

今日再次回顾了Linux系统中用于检测内存泄漏的工具valgrind的使用方法:

  1. 通过网络资料了解到,目前多数人采用的是valgrind工具集,该集合包含多种功能模块:

(1) memcheck:用于识别程序运行过程中出现的各类内存相关问题,例如内存泄漏、越界访问以及无效指针等异常情况。

(2) callgrind:可对程序执行时间及调用流程进行追踪,并辅助分析程序性能表现。

(3) cachegrind:用于评估CPU缓存的命中率与丢失率,为代码优化提供数据支持。

(4) helgrind:专门针对多线程程序中的竞态条件进行检测。

(5) massif:堆栈分析工具,能够展示程序在运行期间所占用的堆内存总量及相关信息。

  1. 其中memcheck是该工具集中最为常用的部分,其主要职责是检查与内存相关的错误:

(1) 对未初始化内存区域进行访问,此类数据内容具有随机性。

(2) 访问无效指针所指向的内存地址,如空指针或野指针。

(3) 内存越界操作。

(4) 源地址与目标地址存在重叠时的数据复制操作。

具体包括以下几种情况:
访问未初始化的内存(Use of uninitialised memory)
读写已释放的内存(Reading/writing memory after it has been free’d)

全部评论 (0)

还没有任何评论哟~