Insure++
Insure++™介绍
一、 什么是 Insure++™?
Insure++™是一个针对 C/C++应用的运行时错误自动检测工具,发现诸如内存破坏、内
存泄漏、指针错误和 I/O 错误等大量问题。Insure++™通过使用一系列独特的技术(如源码
插装等),彻底检查和测试代码,精确定位错误的准确位置并给出详细的诊断信息。
Insure++™能够可视化实时内存操作,优化内存算法。Insure++™还能执行覆盖性分析,清
楚地指示那些代码已经测试过。
Insure++™的特性
1. 检测众多不同类型的难以捉摸的错误,如内存破坏、内存泄露、内存分配错误、变
量初始化错误、变量定义冲突、指针错误、库错误、逻辑错误和算法错误等等。
2. 精确定位引起内存泄露的代码位置,不仅是泄露的内存位置
3. 支持所有流行的编译器,如 VC、CC、GCC 和 ACC等等
4. 能够检查第三方库和函数以及非 C 语言所写的模块接口
5. 允许您在快速有选择的检查和完全插装检查之间进行切换
6. 发现大量的 C++错误。
Insure++™的好处
1. 大量减少调试时间
2. 减少软件缺陷提高产品信誉
3. 降低维护和支持成本
4. 经常使用能够帮助您排除算法错误
5. 支持多平台和跨平台开发
6. 能够与您的开发生命周期无缝集成
二、 Insure++™能做什么?
Insure++™能够发现 C/C++应用中很多难以捉摸的错误,大致可以分成三大类:
1. 内存引用错误:
● 内存破坏
● 指针错误
●内存泄漏
● 动态内存问题
● 字符串问题
● 其他
2. 编程和第三方库接口错误:
● 数据表示问题
● 变量说明问题
2/3 ● I/O 语句问题
● 不匹配的参数
● 系统调用中的无效参数
● 系统调用中的意外错误
● 其他
3. C++有关的错误:
● Delete 操作的使用不一致
● 内存分配冲突
● 其他
4. 动态内存错误检测
● 多次释放同一内存块
● 试图删除或释放静态分配的内存
● 释放栈内存(局部变量)
● 传递给 delete/free的指针没有指向一内存块的起点
● 用 NULL 或未初始化指针调用 delete/free
● 传递没有意义或类型错误的参数给 malloc/calloc/realloc/free
● new[ ]和 delete[ ]调用不匹配
● malloc/new/free/delete 混合调用不匹配
● 过度的 new/delete 调用引起的问题
● 其他
●
三、 Insure++™有什么工具?
1. Insra:
图形化显示静态和动态检测时检测到的错误,并指出发生错误的准确位置。
2. Inuse:
实时内存可视化工具,帮助您理解内存使用模式并优化其行为。
3. TCA:
测试覆盖性分析,告诉您那些代码已经被实际测试过。
4. Threads++(Linux, Unix):
图形化实时显示多线程中各线程的执行状况并检测线程中的错误。
四、 专利和关键技术
Insure++™利用源码插装(SCI,ParaSoft 专利技术,#5581696)和运行时指针跟踪
(RPT,ParaSoft 专利技术,# 5842019)技术。
1. 源码插装:
Insure++™对所有程序元素建立一个综合数据库,包括数据结构、内存使用、指针使用
和接口等。
3/3 2. 运行时指针跟踪:
使用一个有关指针和内存块的综合数据库检查对内存的每一次读写操作。
五、 支持平台
1. Microsoft Windows 2000/XP/2003,Insure++™ works as a plug-in for Visual C++
* Microsoft Visual C++ 6.0
* Microsoft Visual C++ .NET
* Microsoft Visual C++ .NET 2003
* Microsoft Visual C++ 2005
2. Linux for x86 processors 32 bits (all distributions)
* GNU gcc/g++ 2.95.x, 3.2.x, 3.3.x, 3.4.x, 4.0
* Intel ICC 8.0, 8.1, 9.0
3. Linux for AMD64 and Intel EM64T 64 bits (all distributions)
* GNU gcc/g++ 3.2.x, 3.3.x, 3.4.x, 4.0
* Intel ICC 8.1, 9.0
4. Solaris 7, 8, 9, 10 UltraSparc Processor
* Forte Developer 6 Update 2 (6.2) / Sun CC 5.3
* Sun ONE Studio 7/ Sun CC 5.4
* Sun ONE Studio 8/ Sun CC 5.5
* Sun Studio 9/ Sun CC 5.6
* Sun Studio 10/ Sun CC 5.7
* GNU gcc/g++ 2.95.x, 3.2.x, 3.3.x, 3.4.x
5. IBM AIX 5.1, 5.2, 5.3, PowerPC Processor 32 and 64 bits
* IBM VisualAge (xlC) v5, v6, v7, v8
* GNU gcc 2.95.x, 3.2.x, 3.3.x, 3.4.x (GNU g++ is NOT supported.)
6. HP-UX 11 for PA-RISC 32 and 64 bits
* HP aCC/aC++ version A.03.26 and above
* GNU gcc/g++ 2.95.x, 3.2.x, 3.3.x, 3.4.x