parasoft insure++ 自动查找c/c++代码中隐藏的错误

2
使用Parasoft® Insure++ 自动查找C/C++代码中隐藏的错误 Insure++ 是专用于 C C++ 语言的运行时内存分析和错误检测工具,它能自动识别多种难于跟踪的编程和 内存访问错误,并定位内存使用方面的潜在缺陷和效率低下等问题。诸如内存误操作,内存泄露,数组访问越 界,无效指针和其它通过常规测试手段难以发现,却在运行时导致应用程序崩溃的诸多问题。Insure++ 均能 帮助你找到并消除这些程序中的缺陷,保证内存使用的完整性。 能被检测到的错误 在测试过程中,Insure++ 会在用户代码和第三方库中检查所 有的内存引用,包括静态(全局)内存,栈内存和共享内存。 Insure++ 能检测到的错误包括: 堆栈内存崩溃 使用未初始化的变量或对象 堆栈中的数组越界、字符串越界 使用悬挂指针、无效指针和未初始化指针 所有内存分配和释放问题,包括不匹配问题 所有的内存泄漏 全局声明,指针和函数访问的类型不匹配错误 部分无用代码(编译过程中) Insure++ 使用专利*源码插装算法为用户提供了丰富的内存分 析功能。通过源码插装,能检测出比其他内存错误查找技术更 多的内存错误,同时基于Insure++ 分析源码得到的关于程序 元素和内存结构的数据库,Insure++ 提供完整的信息,用于定 位造成这些问题的根源。 Insure++ 提供三种内存分析和错误检测方法。第一种也是最 全面的一种分析方法通过全面源码插桩 (full source code instrumentation)。使用这种方法要求用户先使用 Insure++ 对自己的程序进行编译和链接,以便生成相应的插装文件传递 给实际的编译器。 第二种方法采用 Insure++ 进行链接 (linking with Insure++) ,此种方法在“错误报告的详细程度”和“构建并运行插装程 序的时间长短”两者之间作出折中。在这种模式下, Insure++ 能检测并且报告包括内存泄漏,无效内存引用,标 API 使用错误在内的大多数错误。 多种使用模式 Windows® UNIX 操作系统上,用户可以将错误消 息发送到 Insra, (用于显示错误的 GUI),通过选中错误来查 找其相应的错误原因和堆栈跟踪信息。

Upload: others

Post on 31-Oct-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Parasoft Insure++ 自动查找C/C++代码中隐藏的错误

使用Parasoft® Insure++ 自动查找C/C++代码中隐藏的错误

Insure++ 是专用于 C 和 C++ 语言的运行时内存分析和错误检测工具,它能自动识别多种难于跟踪的编程和

内存访问错误,并定位内存使用方面的潜在缺陷和效率低下等问题。诸如内存误操作,内存泄露,数组访问越

界,无效指针和其它通过常规测试手段难以发现,却在运行时导致应用程序崩溃的诸多问题。Insure++ 均能

帮助你找到并消除这些程序中的缺陷,保证内存使用的完整性。

能被检测到的错误在测试过程中,Insure++ 会在用户代码和第三方库中检查所

有的内存引用,包括静态(全局)内存,栈内存和共享内存。

Insure++ 能检测到的错误包括:

堆栈内存崩溃

使用未初始化的变量或对象

堆栈中的数组越界、字符串越界

使用悬挂指针、无效指针和未初始化指针

所有内存分配和释放问题,包括不匹配问题

所有的内存泄漏

全局声明,指针和函数访问的类型不匹配错误

部分无用代码(编译过程中)

Insure++ 使用专利*源码插装算法为用户提供了丰富的内存分

析功能。通过源码插装,能检测出比其他内存错误查找技术更

多的内存错误,同时基于Insure++ 分析源码得到的关于程序

元素和内存结构的数据库,Insure++ 提供完整的信息,用于定

位造成这些问题的根源。

Insure++ 提供三种内存分析和错误检测方法。第一种也是最

全面的一种分析方法通过全面源码插桩 (full source code

instrumentation)。使用这种方法要求用户先使用 Insure++

对自己的程序进行编译和链接,以便生成相应的插装文件传递

给实际的编译器。

第二种方法采用 Insure++ 进行链接 (linking with Insure++)

,此种方法在“错误报告的详细程度”和“构建并运行插装程

序 的 时 间 长 短 ” 两 者 之 间 作 出 折 中 。 在 这 种 模 式 下 ,

Insure++ 能检测并且报告包括内存泄漏,无效内存引用,标

准 API 使用错误在内的大多数错误。

多种使用模式

在 Windows® 和 UNIX 操作系统上,用户可以将错误消

息发送到 Insra, (用于显示错误的 GUI),通过选中错误来查

找其相应的错误原因和堆栈跟踪信息。

Page 2: Parasoft Insure++ 自动查找C/C++代码中隐藏的错误

支持的平台

除了运行时内存错误检测引擎,Insure++ 还提供两个组件以增强工

具的分析范围:

TCA (提供总的覆盖率分析)

Inuse (提供应用程序内存使用分析)

TCA 分析、报告代码覆盖率,并进一步让你以图形化方式,直观地

看到已测试部分代码和代码块执行次数。通过运行时错误检测工具

Insure++ 和全面的测试套件协同工作,能显著提升测试效率并让你

在更短时间内提交更可靠的程序代码。

Inuse 能够对应用程序的内存应用情况给出可视化的报告。 这个组

件以直观的图形化方式,报告内存分配,超时, 以及整个 堆栈使用,

block 分配,可能的突出内存泄漏 (outstanding memory leaks) 等

问题。通过为用户提供应用程序内存使用情况的深入报告, Inuse

能够帮助用户高效地分析和优化运行时内存使用状况和性能。

Parasoft®Inuse 和Parasoft® TCA

Parasoft 对源码插桩算法拥有编号为 #5,581,696 和 #6,085,029 专利。*

Microsoft Windows7: VS2005 SP1 - VS2010Vista: VS2005 SP1 - VS20102008: VS2005 SP1 - VS2010XP: VS6 - VS20102003: VS6 - VS20102000: VS6 - VS2005

Linux for x86 Processors 32-bits (all distributions)GNU gcc/g++ 2.95.x, 3.2 - 4.5Intel ICC 8.1, 9.0, 9.1, 10.0, 10.1, 11.0

Linux for AMD64 and Intel EM64T 64-bits (all distributions)GNU gcc/g++ 3.2.x - 4.5Intel ICC 8.1, 9.0, 9.1, 10.0, 10.1, 11.0

IBM AIX 5.1, 5.2, 5.3, PowerPC processor

IBM VisualAge v5IBM Visual Age (xIC compilers) v6 , v7, v8GNU gcc/g++ 2.95 - 4.2

IBM AIX 6.1, PowerPC processor

IBM Visual Age (xIC compilers) v10.1

IBM Visual Age (xIC compilers) v11.1

GNU gcc/g++ 2.95 - 4.2

Solaris 8, 9, 10 UltraSparc ProcessorForte Developer 6 Update 2 (6.2) / Sun CC 5.3Sun ONE Studio 7 / Sun CC 5.4Sun ONE Studio 8 / Sun CC 5.5Sun Studio 9 / Sun CC 5.6Sun Studio 10 / Sun CC 5.7Sun Studio 11 / Sun CC 5.8Sun Studio 12 / Sun CC 5.9GNU gcc/g++ 2.95 - 4.2

功能检测所有堆栈引起的内存误操作

检测未初始化的变量、指针和对象

检测内存泄漏,内存分配/释放等错误

STL 检查,帮助合理使用 STL 容器并检测相关内存错误

编译时检查类型和字节大小相关问题

跟踪运行时的函数调用关系

提供图形界面(GUI) 和命令行 (command line) 接口

检查第三方的静态库和动态库的内存错误

可直接使用 Visual Studio 调试器

优点在内存错误成为运行时的问题之前就发现它们

查找 64 位移植过程中常见错误

帮助用户优化应用程序的内存使用

减少开发和支持成本

在 “smoke alarm” 模式中方便地同回归测试套件集成

提供对错误详细的堆栈跟踪以帮助了解其原因

TCA 测试覆盖率计算行覆盖率和块覆盖率

报告代码行,块,类,函数和文件覆盖率

文本方式报告和交互式的、高亮显示的图形化覆盖率报告

Inuse 内存监视器 对内存泄漏给出可视化报告

给出实时内存使用状况的可视化报告

帮助用户建立程序事件和内存使用状况的联系

** 对于任何使用 Unix GCC 3.0 或以上的用户可用。

www.parasoft.com

倍睿软件 (上海) 有限公司, 上海市打浦路1号金玉兰广场西楼902室

电话:021 -60932820,传真:021 -60932821,邮箱:[email protected]