使用IBM Rational PurifyPlus检测和优化C/C++程序

5星 · 超过95%的资源 需积分: 9 43 下载量 121 浏览量 更新于2023-07-07 收藏 890KB PDF 举报
"IBM Rational Purify Plus 是一款强大的静态和动态代码分析工具,专门用于检测C/C++程序中的内存泄漏和性能瓶颈。它不仅能定位到引起问题的代码行,还提供了解决这些问题的建议。该工具适用于Linux、UNIX以及AIX操作系统。在版本7.0.1中,用户可以开始使用Purify来理解和解决各种错误,包括分析内存泄漏和性能问题。" IBM Rational Purify Plus 是一套全面的软件质量保证工具,主要关注C和C++应用程序的内存管理和性能优化。其功能主要包括: 1. **内存泄漏检测**:Purify能够检测到程序中的内存泄漏问题(Memory Leak,简称MLK)。当程序分配了内存但未能正确释放时,就会发生内存泄漏。Purify通过跟踪内存分配和释放的过程,能帮助开发者找到未被释放的内存块,并指出导致泄漏的代码行。 2. **错误定位**:在"Hello World"示例中,Purify展示了如何查找并解释错误。通过运行被“instrumented”(即添加了特殊监控代码)的程序,它可以捕获到错误,并在错误报告中显示详细信息,帮助开发者理解错误的原因。 3. **性能瓶颈分析**:Purify不仅关注内存问题,还能分析程序的性能瓶颈,找出消耗资源最多的部分。这有助于开发者优化代码,提高程序运行效率。 4. **错误纠正**:在找到错误后,Purify提供指导帮助开发者进行修复。例如,对于ABR(Access Before Resize)错误,Purify会指示开发者如何调整内存分配的时机和方式以避免此类问题。 5. **堆分析**:查看堆分析结果是识别内存问题的关键步骤。Purify提供了一个界面,可以展示堆的当前状态,包括已分配和未释放的内存块,帮助开发者理解和修复内存泄漏。 6. **比较程序运行**:Purify允许开发者对比不同运行的结果,以观察错误是否已修复或是否有新的问题出现。 7. **消息抑制**:对于某些非关键性的Purify消息,开发者可以选择将其抑制,以便更专注于关键问题。 8. **与调试器集成**:Purify可以与调试器配合使用,使得在调试过程中也能检查内存问题,提高问题定位的效率。 9. **纯覆盖率(Pure Coverage)**:除了Purify的基本功能外,还可以结合PureCoverage,进一步了解代码覆盖情况,确保测试的有效性。 10. **编译和运行时选项**:Purify提供了多种编译时和运行时选项,如转换字符用于处理文件名,以及各种运行时设置,以适应不同的调试和分析需求。 11. **错误消息和报告**:Purify产生的错误消息详细且具有指导性,帮助开发者理解问题的性质,并提供可能的解决方案。 IBM Rational Purify Plus 是一个强大的工具,它为C/C++开发人员提供了一种有效的方式来识别和解决内存管理和性能问题,从而提升软件的质量和稳定性。