产品中心
Insure++
Parasoft Insure++ 是专用于 C 和 C++ 语言的运行时内存分析和错误检测工具,它能自动识别多种难于跟踪的编程和内存访问错误,并定位内存使用方面的潜在缺陷和效率低下等问题。诸如内存误操作,内存泄露,数组访问越界,无效指针和其它通过常规测试手段难以发现,却在运行时导致应用程序崩溃的诸多问题,Insure++ 均能帮助你找到并消除这些程序中的缺陷,保证内存使用的完整性。

通过 Parasoft Insure++ 自动检测难以查找的 C/C++ 错误

Insure++ 是专用于 C 和 C++ 语言的运行时内存分析和错误检测工具,它能自动识别多种难于跟踪的编程和内存访问错误,并定位内存使用方面的潜在缺陷和效率低下等问题。诸如内存误操作,内存泄露,数组访问越界,无效指针和其它通过常规测试手段难以发现,却在运行时导致应用程序崩溃的诸多问题,Insure++ 均能帮助你找到并消除这些程序中的缺陷,保证内存使用的完整性。

多种使用模式

Insure++ 使用基于专利的源码插装算法为用户提供了丰富的内存分析功能。通过源码插装,能检测出比其他内存错误查找技术更多的内存错误,同时基于 Insure++ 分析源码得到的关于程序元素和内存结构的数据库,为定位造成这些问题的根源提供了完整的信息。

Insure++ 提供二种内存分析和错误检测方法。第一种也是全面的一种分析方法通过全面源代码插装。使用这种方法要求用户先使用 Insure++ 对自己的程序进行编译和链接,以便生成相应的插装文件提供给编译器。

第二种方法采用 Insure++ 进行链接,此种方法在错误报告的详细程度和实际构建并运行插装程序时间长短这两者之间进行权衡。在这种模式下,Insure++ 能检测并且报告大多数错误类型,包括内存泄漏,无效内存引用,标准 API 使用错误,等等。

Parasoft Inuse and Parasoft TCA

除了内存运行错误分析引擎,Insure++ 还提供两个组件以增强工具的分析范围:

  • TCA (提供总的覆盖率分析)
  • Inuse (提供应用程序内存使用分析)
  • TCA 分析、报告代码覆盖率,并进一步让你以图形化方式,直观地看到已测试部分代码和代码块执行次数。通过运行时错误检测工和全面的测试套件协同工作,能显著提升测试效率并让你在更短时间内提交更可靠的程序代码。

Inuse 能够对应用程序的内存应用情况给出可视化的报告。 以直观的图形化方式,报告内存分配,超时,以及整个 Heap 使用,Block 分配,Outstanding Memory Leaks 等问题。通过为用户提供应用程序内存使用情况的深入报告,Inuse 能够帮助用户高效地分析和优化运行时内存使用状况和性能。

TCA 测试覆盖率

  • 计算行覆盖率和块覆盖率
  • 对代码行,块,类,功能和文件给出相应的报告
  • 文本报告和交互式的、高亮显示的图形化覆盖率报告

Inuse内存监视器

  • 可视化内存泄漏报告
  • 显示实时内存使用状态
  • 帮助用户建里程序事件和内存使用状况的联系

优点

  • 在内存错误成为运行时的问题之前就发现这些问题
  • 查找移植64位过程中常见错误
  • 帮助用户优化应用程序的内存使用
  • 减少开发和用户支持成本
  • 在“烟雾报警”模式下,可轻松方便地与回归测试集成
  • 提供详细的错误堆栈跟踪信息,以帮助了借其问题根源

能检测到的错误包括:

  • 堆栈崩溃
  • 使用未初始化的变量或对象
  • 堆栈中的数组越界、字符串越界
  • 使用悬挂指针、无效指针和未初始化指针
  • 内存分配和释放问题,包括不匹配问题
  • 内存泄漏
  • 全局声明,指针和函数访问的类型不匹配错误
  • 部分无用代码(编译过程中)

功能

  • 检测堆栈引起的内存误操作
  • 检测未初始化的变量、指针和对象
  • 检测内存泄漏,内存分配和释放等错误
  • STL检查,帮助合理使用STL容器并检测相关内存错误
  • 编译时检查变量类型和字节大小相关问题
  • 实时跟踪函数调用关系
  • 提供图形界面和命令行两种接口
  • 检查第三方的静态库和动态库的内存错误
  • 可直接使用Visual Studio调试器
  • 支持Unix GCC3.0版本以上的用户

支持的环境

  • Microsoft Windows

Visual C++

  • Linux

GNU gcc/g++

Intel ICC

  • IBM AIX, PowerPC

IBM Visual Age

IBM Visual Age (xIC compilers)

GNU gcc/g++

  • Solaris UltraSPARC Processor

Forte Developer

Sun Studio

GNU gcc/g++