- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用Rational Purify 目录 Purify概述 Purify具体功能描述 Purify使用举例 Purify主要参数设置 Purify概述 程序代码中,与内存有关的问题可以分成两大类:内存访问错误和内存使用错误。 内存访问错误包括读内存错误和写内存错误。读内存错误可能让程序模块返回意想不到的结果,从而导致后续的程序模块运行异常。 内存使用错误主要是指程序模块申请的内存没有正确释放,系统可用内存逐渐减少,使程序运行逐渐减慢,直至停止。 Purify概述(续) Purify使用具有专利的OCI(Object Code Insertion,目标代码插入)技术,在被测试的目标程序中插入一些函数,这些函数主要是内存检测的语句。这些语句放置在程序代码中所有内存操作之前,一旦在程序运行时发现内存问题,它们就会报告问题信息。 Purify主要检测以下类型的内存错误:数组内存是否越界读/写、是否使用了未初始化的内存、是否对已释放的内存进行读/写、是否对空指针进行读/写、内存泄漏等。 Rational Purify能自动找出错误的准确来源和位置,如果有源代码,可以从Purify中启动相应的编辑器,快速修复错误。 Rational Purify可以从功能、可靠性和性能等多个方面反映应用程序的质量。 Purify的特色 提供了一套内存使用状况分析工具,自动找出Visual C/C++和Java 代码中与内存有关的错误 Purify 的WinCheck 功能会检查应用程序每次COM 方法和Windows API的调用,包括GDI 句柄检查和Windows资源泄漏及错误指针的检查 Rational Purify不但能检查可访问源代码的内存错误,还能检查程序库中无权访问的源代码错误。 使用Purify的PowerCheck功能可以定制错误检查规则,可以按模块调整所需的检查级别。 Rational Purify与Microsoft Visual Studio 集成,程序员在开发工具中就可以获得Purify的自动调试以及源代码编辑功能。 目录 Purify概述 Purify具体功能描述 Purify使用举例 Purify主要参数设置 可检查的错误类型 堆阵相关错误 如未初始化内存的读取和复制错误,以及数组越界读写错误) 堆栈相关错误 如未初始化内存的读取和复制错误,以及堆栈越界读写错误) 垃圾内存收集 Java 代码中相关的内存管理问题 COM 相关错误 如COM API/接口调用失败 可检查的错误类型(续) 指针错误 如无效指针和空指针的读写错误 内存使用错误 如释放内存的读写错误、内存泄漏和释放内存匹配错误 Windows API 相关错误 如Windows API 函数参数错误和返回值错误 句柄错误 如泄漏和句柄使用错误 可检测的错误代码 ActiveX(OLE/OCX)控件 COM 对象 ODBC 构件 Java 构件、applet、类文件、JAR 文件 可检测的错误代码(续) Visual C/C++源代码 Visual Basic 应用程序内嵌的Visual C/C++构件 第三方和系统DLL 支持com调用的应用程序中的所有Visual C/C++构件 测试信息说明 信息色彩,Purify对源程序中有内存问题的代码使用不同的颜色标识。 红色:内存块没有被分配和初始化 蓝色:内存块已经被分配并且已初始化 黄色:内存块已经被分配但是没有初始化 测试信息说明(续) 名称缩写 注:下面是可引起内存不可读或不可写的名称缩写: Array Bounds Read (ABR):数组越界读 Beyond Stack Read (BSR):堆栈越界读 Free Memory Read (FMR):空闲内存读 Invalid Pointer Read (IPR):非法指针读 Null Pointer Read (NPR):空指针读 Uninitialized Memory Read (UMR):未初始化内存读 目录 Purify概述 Purify具体功能描述 Purify使用举例 Purify主要参数设置 程序 #include iostream using namespace std; int main(){ char* str1=four; char* str2=new char[4]; //没考虑字符串终止符\0也要占内存空间,导致后面数 //组越界错误 char* str3=str2; coutstr2endl; //UMR,str2没有赋值,对未初始化的内存读(Uninitialized //Memory Read)
您可能关注的文档
- 认识胰岛素泵剖析.ppt
- 计算机应用基础第一章剖析.ppt
- 第3章:插值法与最小二乘法-数据拟合的最小二乘法重点.ppt
- 材料力学第九章组合受力与变形2重点.ppt
- 硬盘主要知识点介绍重点.ppt
- 湘教版-八下地理-第八章第2节台湾重点.ppt
- 计算机应用中的常见问题与故障排除剖析.doc
- 认识职业生涯规划剖析.ppt
- 计算机硬件组成剖析.ppt
- 第3章_单向散列函数重点.ppt
- 2025年重庆电讯职业学院单招(语文)测试题库最新.docx
- 2025年海南健康管理职业技术学院单招(语文)测试题库附答案.docx
- 2025年开封职业学院单招(语文)测试模拟题库附答案.docx
- 2025年云南省思茅市单招语文测试题库附答案.docx
- 2025年西安高新科技职业学院单招(语文)测试题库附答案.docx
- 2025年河南省焦作市单招语文测试题库最新.docx
- 2025年青海省玉树藏族自治州单招(语文)测试题库最新.docx
- 2025年广东环境保护工程职业学院单招(语文)测试题库附答案.docx
- 2025年福建省龙岩单招(语文)测试题库附答案.docx
- 2025年无锡商业职业技术学院单招(语文)测试模拟题库最新.docx
文档评论(0)