秋阳的软件测试专栏

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  65 随笔 :: 0 文章 :: 127 评论 :: 0 Trackbacks

  这段时间我的团队在对一个产品进行稳定性测试,让程序在Purify下运行,结果Purify最后出现了错误。同事告诉我有一款工具——valgrind,可以定位程序内存方面的错误,于是下载下来,运行测试,效果很好,这个工具运行稳定,给出的结果也很清晰。
    valgrind这款工具是运行在linux下的,可以用来定位c/c++程序中内存使用方面的错误。包括:内存泄漏、使用未初始化的内存、读/写已释放的内存、读/写内存越界、使用malloc/new/new[]和free/delete/delete[]不匹配,等等。
    valgrind官方网站:http://valgrind.org/,是一款open source软件。我下载的时候最新版是3.2.3。安装过程很简单——configure,make,make install,安装后不需要任何设置,直接可以开始使用。
    valgrind运行方法很简单:valgrind --leak-check=full --track-fds=yes 程序 参数
  这样你的程序就会在valgrind监控下运行了,结果会直接输出到屏幕上。如果想把结果输出到日志文件(通常也需要这样),用如下的命令:valgrind --log-file=valgrind_log --leak-check=full --track-fds=yes 程序 参数
  感谢这款工具的开发者——Jonathan Riddell 。也感谢我的同事肖锋,让我知道有这样一款工具

*valgrind网站上的,骑士战恶龙


PS:说起Run-time错误定位工具,我最初使用的是Boundchecker,那还是在Visual c++ 6.0的时代,那款工具确实很好用,功能、性能都不错,但后来不知道Compuware公司出了什么问题,对这款工具的改进很少,到了MS .net出来以后,我试用过Boundchecker针对.net的版本,性能很差。后来是否再有更新我就不清楚了,因为再也没有使用过Compuware的产品。Purify是现在的公司使用的Run-time错误定位工具,使用方法和Boundchecker非常类似(2002年的时候Compuware指控IBM错误分析器产品中使用自己拥有版权的代码,就是这款产品),也许是因为曾经使用过Boundchecker先入为主的原因,对这款工具始终感觉不是很好,在这次测试过程中,Purify自己竟然宕了。使用过valgrind后,我查了关于它的一些资料,对这款工具评价很好。遇到相同需求的朋友,可以试一下valgrind这款工具,相信不会让你失望!

posted on 2007-04-27 17:44 qiuyangzh 阅读(8910) 评论(1)  编辑 收藏 引用 所属分类: 02 单元测试
只有注册用户登录后才能发表评论。