• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

C/C++内存问题检查利器—Purify的退出码

发布: 2009-4-20 17:31 | 作者: 陈皓 | 来源: 测试时代采编 | 查看: 139次 | 进入软件测试论坛讨论

领测软件测试网

 

2、  MILY: 宋体">我们可以使用Purify的过滤语法来要求Purify的过滤信息。并把其存于.purify文件中,这样当我们的Purify起动后载入这个文件,就可以达到过滤信息的目的了。通过文本语法来设置过滤信息比图形界有更为强大的地方。下面还是来看看suppress的语法:

 

语法:

suppress <message-type> <function-call-chain>
unsuppress <message-type> <function-call-chain>

 

其中,suppressunsuppress中关键字,分别表示过滤或不过滤。<message-type>指明要操作的消息,可以使用“*”做通配符,<function-call-chain>表示函数的调用链,调用的函数链用分号分隔,其同样可以使用“*”做通配符,还可以使用“”来表示无论中间是什么。

 

还是来看几个示例吧:

1)  suppress AB*  
表示过滤ABRABW错误。

2)  suppress *W  
表示过滤ABWFMWIPWNPWSBWWPWZPW错误。


3)  suppress ABR “libc*”
表示在所有以libc打头的LIB文件中过滤ABR信息。

4)  suppress ABR sortFunction; sort*; qsort; “libc*” 
其表示,过滤ABR错误。过滤范围是在sortFunction中,并且是在以libc开头的函数库文件中,其调用链是qsort -> sort* -> sortFunction。换言之,只要有“libc*”文件中的函数调用了qsort,并且qsort调用了开头为sort*的函数,并且这些函数调用了sortFunction,那么,在这一个函数链中,不显示ABR错误信息。


5)  suppress UMR tzsetWall;…; main 
其表示,在tzsetWall函数中过滤URM信息,只要tzsetWall函数是被main函数间接调用的,无论有多远,都不显示UMR信息。

6)  suppress FNH Test: :Test
这是C++中使用的语法,表示在类Test所有的构造函数中过滤FNH信息。如果要指明特定的函数,请加上其参数类型,如:suppress FNH Test::Test(const char*)


注意,“”语法表示调用链无论有多远。当然,如果你设置了参数“-chain-length=6”,那么,“”只能到6层函数调用,7层的就不管了。

 

在启动Purify时,我们可以这样来读取.purify文件:

% purify -suppression-file-names=".purify,.purify.sunos4,\

$HOME/purify_suppressions"

 

Purify会在下面的目录中寻找这个文件:

<purifyhome>/.purify

<purifyhome>/.purify.sunos4

$HOME/.purify

$HOME/.purify.sunos4

<progdir>/.purify

<progdir>/.purify.sunos4

$HOME/purify_suppressions

 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

44/4<1234

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网