valgrind使用说明

valgrind使用说明

注:我会在做项目过程中,逐渐把对valgrint的使用心得加到这里面来。也欢迎大家把使用心得加进来。
注1:最近查看MySQL文档,发现MySQL的内存调试也用到了valgrind。说明valgrint还是不错的。

0、valgrind的下载地址
      可以从http://valgrind.org/downloads/current.html下载valgrind 3.2.3 (tar.bz2)
      这个tar包里面doc下面有很具体的详细说明(这个项目的文档很全)。
1、什么是valgrind

    Valgrind是帮助程序员寻找程序里的bug和改进程序性能的工具。程序通过valgrind运行时,valgrind收集各种有用的信息,
 通过这些信息可以找到程序中潜在的bug和性能瓶颈。
    Valgrind现在提供多个工具,其中最重要的是Memcheck,Cachegrind,Massif和Callgrind。
 

2、valgrind的工具介绍
 2、1Memcheck:
 这个工具可以用来寻找c、c++和fortran程序中内存管理的错误。写c或c++程序时,很多隐藏很深的bug是内存操作上
 出了问题。而这些在Memcheck面前都无处遁形。Memcheck可以检查出下列几种内存操作上的错误:
      读写已经释放的内存
      读写内存块越界(从前或者从后)
      使用还未初始化的变量
      将无意义的参数传递给系统调用
      内存泄漏
 2、2Cachegrind:
  这个工具可以提供详尽的profiling信息。它不光对指令、内存访问进行计数,更能针对每条指令、每行源代码、每个函数和每个程序
 统计cache的不命中次数。大家应该知道,cache对目前系统的性能有决定性的影响。因此这些信息可以指导程序员调整代码,
 最大限度的提高程序性能。
 2、3Massif:
 Massif对内存的分配和释放做profile。程序开发者通过它可以深入了解程序的内存使用行为,从而对内存使用进行优化。
 这个功能对C++尤其有用(因为C++有很多隐藏的内存分配和释放)。

3、Memcheck用法简介 
         3、1 先把要测试的应用程序program用-g 选项编译(去掉其他所有优化选项,避免出现不必要的问题)
         3、2 用valgrind 运行你的程序program。
                   例子:
         valgrind --log-file=valReport --leak-check=full --show-reachable=yes --leak-resolution=low  --num-callers=4 ./your_program
                   参数解释:
                   --log-file=valReport   表示把错误报告写到文件 valReport   里面
                   --num-callers=4 表示用来区别函数位置的函数调用深度,为40


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dyoldfish/archive/2007/08/29/1763546.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值