Linux 下Valgrind 使用
2014-04-14 18:48
253 查看
Valgrind包括如下一些工具:
Memcheck。这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。这也是本文将重点介绍的部分。
Callgrind。它主要用来检查程序中函数调用过程中出现的问题。
Cachegrind。它主要用来检查程序中缓存使用出现的问题。
Helgrind。它主要用来检查多线程程序中出现的竞争问题。
Massif。它主要用来检查程序中堆栈使用中出现的问题。
Extension。可以利用core提供的功能,自己编写特定的内存调试工具。
valgrind使用:
1、 编译源文件,使用命令g++ -g -O0 segfault.cpp -o segfault
其中参数的含意为:
-g 指示编译器在编译时产生调试信息
-O0 编译器优化等级,O0表示不进行优化
-o 输出文件名称
2、使用valgrind 检查内存
使用如下命令: valgrind --tool=memcheck --leak-check=full --log-file=reportleak ./segfault
参数含意:
--tool=memcheck 使用的工具,默认即为memcheck
--leak-check=full 要求对与内存错误,给出全部信息
--log-file=*** 表示错误输出文件名
3、察看生成的文件:
如上信息指出了程序内存使用错误的位置。
具体源文件如下:
Memcheck。这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。这也是本文将重点介绍的部分。
Callgrind。它主要用来检查程序中函数调用过程中出现的问题。
Cachegrind。它主要用来检查程序中缓存使用出现的问题。
Helgrind。它主要用来检查多线程程序中出现的竞争问题。
Massif。它主要用来检查程序中堆栈使用中出现的问题。
Extension。可以利用core提供的功能,自己编写特定的内存调试工具。
valgrind使用:
1、 编译源文件,使用命令g++ -g -O0 segfault.cpp -o segfault
其中参数的含意为:
-g 指示编译器在编译时产生调试信息
-O0 编译器优化等级,O0表示不进行优化
-o 输出文件名称
2、使用valgrind 检查内存
使用如下命令: valgrind --tool=memcheck --leak-check=full --log-file=reportleak ./segfault
参数含意:
--tool=memcheck 使用的工具,默认即为memcheck
--leak-check=full 要求对与内存错误,给出全部信息
--log-file=*** 表示错误输出文件名
3、察看生成的文件:
如上信息指出了程序内存使用错误的位置。
具体源文件如下:
相关文章推荐
- Linux下Valgrind的使用概述 来源:Linux社区 作者:dndxhej
- Valgrind内存泄漏工具的安装与使用 -- Linux
- 在linux中使用valgrind检测内存情况
- Linux下使用valgrind做内存泄露检测及绘制函数调用图
- 使用valgrind 查找linux C/C++内存泄漏
- valgrind 安装使用 failed to start tool 'memcheck' for platform 'amd64-linux'
- Valgrind使用以及Linux下调试技术
- Linux:Valgrind使用
- [转]在linux下使用用Valgrind查找内存泄漏和无效内存访问
- Linux内存调试工具-Valgrind使用方法
- Linux下pstack、strace和valgrind的使用
- Linux 内存调试工具- Valgrind 使用初探
- 在linux下使用用Valgrind查找内存泄漏和无效内存访问(转载)
- linux c c++内存检查工具valgrind的使用
- Linux下C++性能测试工具valgrind的使用
- Linux下使用Valgrind检查程序内存问题
- linux下valgrind的使用概述
- Linux 内存调试工具- Valgrind 使用初探(转)
- Linux 内存检测工具valgrind使用手册(转)
- linux 使用valgrind检查内存使用问题