一、简介
C/C++程序,最常见的错误之一就是内存泄露。Valgrind 是一款 Linux下的内存调试工具,它可以对编译后的二进制程序进行内存使用监测找出内存泄漏问题。
Valgrind通常包括如下几个工具:
Memcheck:用于检测内存错误。它帮助c和c++的程序更正确。
Cachegrind:用于分析cache和分支预测。它帮助程序执行得更快。
Callgrind:用于函数调用的分析。
Helgrind:用于分析多线程。
DRD:也用于分析多线程。与Helgrind类似,但是用不同的分析技术,所以可以检测不同的问题。
Massif:用于分析堆。它帮助程序精简内存的使用。
SGcheck:检测栈和全局数组溢出的实验性工具,它和Memcheck互补使用。
Valgrind 中包含的 Memcheck 工具可以检查以下的程序错误:
1)使用未初始化的内存 (Use of uninitialised memory)
2)使用已经释放了的内存 (Reading/writing memory after it has been free’d)
3)使用超过malloc分配的内存空间(Reading/writing off the end of malloc’d blocks)
4)对堆栈的非法访问 (Reading/writing inappropriate areas on the stack)
5)申请的空间是否有释放 (Memory leaks – where pointers to malloc’d blocks are lost forever)
6)malloc/free/new/delete申请和释放内存的匹配(Mismatched use of malloc/new/new [] vs free/delete/delete [])
7)src和dst的重叠(Overlapping src and dst pointers in memcpy() and related functions)
8)重复free
提示:Valgrind不检查静态分配数组的使用情况。
二、安装
http://www.linuxidc.com/Linux/2014-09/106299.htm
三、使用
http://www.open-open.com/lib/view/open1409296596322.html
原文链接: https://www.cnblogs.com/274914765qq/p/4797706.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/221746
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!