码迷,mamicode.com
首页 > 系统相关 > 详细

linux实用技巧:检测内存泄漏工具Valgrind

时间:2014-08-11 14:36:32      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   io   文件   2014   

1.Valgrind简介

        1.在我们编写C/C++的时候,最常见的错误之一就是内存泄露,这样的问题其实跟程序员的编程习惯密不可分。如果你在申请内存空间之后能够马上在合适的 位置释放内存。会极大程度的避免内存泄漏的情况。但是人非圣贤,孰能无过。有时候我们确实忘记释放内存而导致了比较严重的错误,所以这个时候我们需要借助 valgrind这个工具来判断内存泄漏。

         malloc/free/new/delete申请和释放内存的匹配(Mismatched use of malloc/new/new [] vs free/delete/delete [])
  src和dst的重叠(Overlapping src and dst pointers in memcpy() and related functions)
  重复free

2.valgrind的使用实例:

        1.在官网上找到valgrind的tar包:
        解压,编译。完成后make安装:
        bubuko.com,布布扣
        
        编译到制定位置:
        bubuko.com,布布扣
        
        安装valgrind:
        bubuko.com,布布扣
       
        完成之后我们就可以对系统中的程序进行检测了,首先我们用ls显示根目录下的文件,ls命令是没有内存泄漏的:
        bubuko.com,布布扣
       
        为了体现valgrind 的检错功能,我们故意编写一个只malloc没有free的C程序:
        bubuko.com,布布扣

        编译链接后使用valgrind进行检测,发现有内存泄漏:
        bubuko.com,布布扣

        然后我们在C程序中释放内存:
        bubuko.com,布布扣
       
        再次编译链接完成后使用valgrind检测:
        bubuko.com,布布扣
       这次则显示我们申请并且释放了400B的空间,体现了valgrind的强大作用。

3.小结       

        有这样的检错工具当然很好,但是我更认为程序员应该始终头脑清醒,知道自己的程序在做什么,记得这个忠告,如果你的语言没有垃圾回收机制。那么在申请一块内存之后先不要做任何操作,先在合适的位置释放内存。毕竟好借好还,再借不难么。^_^

linux实用技巧:检测内存泄漏工具Valgrind,布布扣,bubuko.com

linux实用技巧:检测内存泄漏工具Valgrind

标签:style   blog   http   color   使用   io   文件   2014   

原文地址:http://www.cnblogs.com/iasd923/p/3904466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!