|
For a Printable Version, Click Here.
Insure++ Data Sheets:
Parasoft Insure++
Find Elusive C/C++ Errors Automatically with Parasoft® Insure++®
Insure++ is a runtime memory analysis and error detection tool for C and C++ that automatically identifies a variety of difficult-to track programming and memory-access errors, along with potential defects and inefficiencies in memory usage. Errors such as memory corruption, memory leaks, access outside of array bounds, invalid pointers, and the like often go undetected during normal testing, only to result in application crashes in the field. Insure++ will help you find and eliminate such defects in your applications to ensure the integrity of their memory usage.
Errors Detected
During testing, Insure++ checks all types of memory references, including those to static (global), stack, and shared memory both in users code and in third party libraries. Errors that Insure++ detects include:
- Corrupted heap and stack memory
- Use of uninitialized variables and objects
- Array and string bounds errors on heap and stack
- Use of dangling, NULL, and uninitialized pointers
- All types of memory allocation and free errors or mismatches
- All types of memory leaks
- Type mismatches in global declarations, pointers, and function calls
- Some varieties of dead code (compile-time)
Multiple Use Modes
Insure++ has highly detailed memory analysis capabilities that are based on patented* source instrumentation algorithms. Source code instrumentation enables Insure++ to detect more error types than other memory error detection technologies,
and also provides complete information indicating the root causes of the errors found, using a full database of program elements and memory structures.
There are three ways to use Insure++ for memory analysis and error detection. The first and most detailed analysis is achieved with full source code instrumentation. This requires that application sources be compiled and linked with Insure++,
which generates its own instrumented files that are passed to the actual compiler.
The second option is linking with Insure++, which provides a trade-off between the extent of error reporting and the actual time to build and run an instrumented application. In this mode, Insure++ can detect and report most of the error
types, including leaks, bad memory references, standard API usage errors, and so on.
Additionally, Insure++ includes Chaperon, which is exclusive to dynamically linked executables on Linux/x86. Chaperon does not require recompilation or re-linking, and checks all the data memory references a process makes, reporting reads of
uninitialized memory, bounds errors, and memory leaks.
Parasoft® Inuse® and Parasoft® TCA®
Along with the runtime memory error detection engine, Insure++ includes two components that increase the tools scope of analysis:
- TCA (provides total coverage analysis)
- Inuse (provides application memory usage analysis)
TCA analyzes and reports block code coverage and lets you get "beneath the hood" of your program to see which parts are actually tested and how often each block is executed. In conjunction with a runtime error detection tool like Insure++ and
a comprehensive test suite, this can dramatically improve the efficiency of your testing and promote faster delivery of more reliable programs.
Inuse visualizes how an application uses memory. This component provides a graphical view of all memory allocations, over time, with specific visibility into overall heap usage, block allocations, possible outstanding leaks, and so on. By providing insight into an application's memory usage patterns, Inuse allows you to effectively analyze and optimize runtime memory usage and performance.
* Parasoft holds patents #5,581,696 and #6,085,029 for its source instrumentation algorithms.
Features
- Detection of memory corruption on heap and stack
- Detection of uninitialized variables, pointers, and objects
- Detection of memory leaks and other memory allocation/free errors
- STL checking** for proper usage of STL containers and related memory errors
- Compile-time checks for type- and size-related errors
- Runtime tracing of function calls
- GUI and command line interface
- Memory error checking in 3rd party static and dynamic libraries
- Direct interfaces with Visual Studio debugger
Benefits
- Finds memory errors before they become runtime problems
- Finds common errors during 64 bit porting
- Helps optimize memory usage of applications
- Reduces development and support costs
- Easily integrates with regression test suites in smoke alarm mode
- Provides detailed stack traces of errors to help understand their causes
TCA Test Coverage
- Calculates line and block coverage
- Reports line, block, class, function, and file coverage
- Text reports and interactive code browser with coverage highlighting
Inuse Memory Monitor
- Visualizes memory leaks
- Displays memory use in real time
- Helps correlate memory usage with program events
** Available for any Unix users with GCC 3.0 and above.
Supported Platforms
Microsoft Windows 2000/XP/2003 32-bit
(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++ .NET 2005
Microsoft Windows XP/2003 64-bit
(Insure++ works as a plug-in for Visual C++)
- Microsoft Visual C++ .NET 2005
Linux for x86 Processors 32-bits (all distributions)
- GNU GCC/G++ 3.2.x, 3.2.x, 3.3.x, 3.4.x, 4.0.x, 4.1.x
- Intel ICC 8.1, 9.0, 10.0, 10.1, and 11.0
Linux for AMD64 and Intel EM64T 64-bits (all distributions)
- GNU GCC/G++ 3.2.x, 3.3.x, 3.4.x, 4.0.x, 4.1.x
- Intel ICC 8.1, 9.0, 10.0, 10.1, and 11.0
IBM AIX 5.1, 5.2, 5.3, PowerPC Processor 32- and 64-bits
- IBM VisualAge v5
- IBM VisualAge (xlC) v6, v7, v8
- GNU GCC/G++ 2.95.x, 3.2.x, 3.3.x, 3.4.x
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
- Sun Studio 11 / Sun CC 5.8
- GNU GCC/G++ 2.95.x, 3.2.x, 3.3.x, 3.4.x, 4.0.x, 4.1.x
HP-UX 11 for PA-RISC 32- and 64-bits
- aCC/aC++ version A.03.26 and above
- GNU GCC/G++ 2.95.x, 3.2.x, 3.3.x, 3.4.x
|