在VS2005中使用IBM Purify的注意事项

[b]Rational Purify 使用及分析实例可以见这里[/b]http://www.ibm.com/developerworks/cn/rational/r-cail

但是如果使用VC7,8,9的默认编译和链接设置,那是肯定找不到准确的错误位置的。
为此,需要在VC8(VC7和VC9类似)中一些编译和链接参数要修改如下:
Debug Information Format - Program Database
[img]http://zhangyafeikimi.iteye.com/upload/attachment/102738/8e4da369-0180-3201-9fdd-cb46a4778674.png[/img]
Whole Program Optimization - No
[img]http://zhangyafeikimi.iteye.com/upload/attachment/102740/8be50081-fa40-3fab-a64b-b5761dc7d116.png[/img]
Code Generation, the Basic Runtime Checks - Default
[img]http://zhangyafeikimi.iteye.com/upload/attachment/102741/f05b43bb-2579-39ad-bb6e-9f973bb07cc5.png[/img]
Enable Incremental Linking - no
[img]http://zhangyafeikimi.iteye.com/upload/attachment/102742/979c811c-7908-3e9a-895b-73707f5d7178.png[/img]
Linker, Command Line - 添加一个额外的链接参数/fixed:no
[img]http://zhangyafeikimi.iteye.com/upload/attachment/102746/fb12c131-7785-3197-9e66-db01db92bb74.png[/img]
之后要重新编译

编译出来的pdb文件和exe或dll文件要在一个文件夹中。如果不在要把pdb拷过来。
安装Microsoft Debugger Interface Access SDK,VS2005默认包含。
然后就可以使用Purify了。直接打开运行就可以了。其他具体过程见手册吧,这里说也是浪费功夫。


[b]使用Purify时的注意事项:[/b]
微软提供的STL中,经常会报出UMR errors,基本可以无视。
关于UMR,可能并不是程序的问题,是purify不够智能,很多情况都可能导致这种误判断。所以,这种错误,自己揣摩吧。
如果要分析大程序,会很耗时间。用半个小时都有可能,要耐心。插入指令的过程本来就需要时间。
插入指令的过程可能崩溃,重新编译一次试试,如果不行就向IBM提交bug吧。
关于程序崩溃,最好禁止一些dump模块或功能。
用purify运行会比原来程序慢,如果依赖于时间或定时器,可能行程序为会不一样,特别注意。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值