admin管理员组

文章数量:1531719

一: valgrind介绍
Valgrind是运行在Linux上的一套基于仿真技术的程序调试和分析工具,用于构建动态分析工具的装备性框架。它包括一个工具集,每个工具执行某种类型的调试、分析或类似的任务,以帮助完善你的程序。Valgrind的架构是模块化的,所以可以容易的创建新的工具而又不会扰乱现有的结构。
Valgrind包括如下一些工具:
Memcheck。检查程序中的内存问题,如泄漏、越界、非法指针等
Callgrind。它主要用来检查程序中函数调用过程中出现的问题。
Cachegrind。分析CPU的cache命中率、丢失率,用于进行代码优化。
Helgrind。它主要用来检查多线程程序中出现的竞争问题。
Massif。它主要用来检查程序中堆栈使用中出现的问题。
Extension。可以利用core提供的功能,自己编写特定的内存调试工具


二:valgrind安装
1.valgrind下载:
http://valgrind/downloads/valgrind-3.12.0.tar.bz2

2.valgrind安装:

tar -jxvf valgrind-3.12.0.tar.bz2
cd valgrind-3.12.0
./configure
make
sudo make install


三:Valgrind 工具详解
memcheck
最常用的工具,用来检测程序中出现的内存问题,所有对内存的读写都会被检测到,一切对malloc、free、new、delete的调用都会被捕获。
用法:valgrind—tool=mencheck ./程序名


注意 :mencheck后面有一个空格
可以检测的问题
1、使用未初始化的内存。
2、读/写释放后的内存块;
3、内存读写越界(数组访问越界/访问已经释放的内存),读/写超出malloc分配的内存块&#x

本文标签: valgrind