您的位置:首页 > 运维架构 > Linux

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、察看生成的文件:



如上信息指出了程序内存使用错误的位置。

具体源文件如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: