PURIFY 使用说明
1.下载
可到IBM网站上下载15天试用版本。需要注册。
2.安装,配置
tar -zxvf purify.tar.gz
cd PurifyPlus.2003a.06.13/
./rs_install
然后跟着提示一步步安装吧,有2个地方需要输入,一个是安装的路径,一个是LICESE文件的位置
3.配置
假设安装再/usr/local/Rational下
修改/etc/profile文件加入
export PATH=$PATH:/usr/local/Rational/releases/purify.i386_linux2.2003a.06.13;
export PURIFYOPTIONS="-follow-child-processes=yes -log-file=mylog.%v.%p";
4.重新编译程序。
类似purify cc -o test test.c
如果是C++的程序的话,要加上-libstdc++.
一般来讲,修改下make文件就可以了
5.错误检查
查看错误日志吧。看看mylog.*吧
6.错误信息
下面是Purify所能检测到的内存信息表:
内存信息
描述
错误等级
ABR
Array Bounds Read 数组越界读
3级
ABW
Array Bounds Write 数组越界写
2级
BSR
Beyond Stack Read 越栈读
3级
BSW
Beyond Stack Write 越栈写
3级
COR
Core Dump Imminent 非法操作
1级
FIU
File Descriptors In Use 文件描述符被使用
4级
FMM
Freeing Mismatched Memory 释放错误内存
2级
FMR
Free Memory Read 对已释放内存读
3级
FMW
Free Memory Write 对已释放内存写
2级
FNH
Freeing Non Heap Memory 释放非堆内存
2级
FUM
Freeing Unallocated Memory 释放了没有分配的内存
2级
IPR
Invalid Pointer Read 非法指针读
1级
IPW
Invalid Pointer Write 非法指针写
1级
MAF
Malloc Failure 分配内存失败
4级
MIU
Memory In-Use 内存正在使用
4级
MLK
Memory Leak 内存泄露
3级
MRE
Malloc Reentrancy Error remalloc错
2级
MSE
Memory Segment Error 内存段错
3级
NPR
Null Pointer Read 空指针读
1级
NPW
Null Pointer Write 空指针写
1级
PAR
Bad Parameter 错误的参数
3级
PLK
Potential Leak 潜在的内存泄露
3级
SBR
Stack Array Bounds Read 栈数组越界读
3级
SBW
Stack Array Bounds Write 栈数级越界写
2级
SIG
Signal 信号
4级
SOF
Stack Overflow 栈溢出
3级
UMC
Uninitialized Memory Copy 对未初始化的内存进行拷贝
3级
UMR
Uninitialized Memory Read 对未初始化的内存读
3级
WPF
Watchpoint Free 释放被监控的内存
4级
WPM
Watchpoint Malloc 被监控的内存分配
4级
WPN
Watchpoint Entry 被监控的内存
4级
WPR
Watchpoint Read 被监控的内存读
4级
WPW
Watchpoint Write 被监控的内存写
4级
WPX
Watchpoint Exit 退出被监控的内存
4级
ZPR
Zero Page Read 零页面读
1级
ZPW
Zero Page Write 零页面写
1级
1级:致命错误。 2级:危险错误。 3级:警告信息 4级:提示信息(非错误)
7.参考资料
1.C/C++内存问题检查利器——Purify 陈皓 http://blog.csdn.net/haoel/archive/2003/12/11/2900.aspx
2. 随安装包带的帮助。