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_linux 2.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. 随安装包带的帮助。