Jump to content

Insure++

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Insure++
Developer(s)Parasoft
Initial release1993; 32 years ago (1993)
Stable release
2021.2 / October 28, 2021 (2021-10-28)
Operating systemCross-platform, Linux, Solaris, Windows
Available inEnglish
TypeProfiler / Memory debugger
LicenseProprietary commercial software
Websitewww.parasoft.com/products/insure

Insure++ is a memory debugger computer program, used by software developers to detect various errors in programs written in C and C++. It is made by Parasoft, and is functionally similar to other memory debuggers, such as Purify, Valgrind and Dr Memory.[1]

Overview

Insure++ can automatically find erroneous accesses to freed memory (use-after-free situations), array-bounds violations, freeing unallocated memory (which often happens when a programmer frees the same memory twice, or when he frees global or stack memory), and many others.[2]

Unlike Purify and Valgrind, Insure++ inserts its instrumentation at the source-code level,[3][4][clarification needed] which allows it to detect errors that the other tools miss.[5] In particular, Insure++ can detect buffer overflows in automatic arrays, and overflows which involve pointers that accidentally "jump" from one valid memory region to another, as in the following example:

#include <stdlib.h>
int main()
 {
    char *p = malloc(1024); /* first dynamically-allocated block */
    char *q = malloc(1024); /* second block */
    p += 1200; /* At this point, "p" is likely to point into the second block. 
                  However, false assumptions about the real behaviour lead to mistakes. */
    *p = 'a';  /* invalid write (past the end of the first block) */
 }

The source-level instrumentation allows it to not only identify that a leak occurred, but where it occurred.[1] Some tools merely provide information about where the memory was allocated, Insure++ also gives a stack trace for when/where the actual leak occurred.

Additionally, Insure++ will produce Linear Code Sequence and Jump Code Coverage metrics for all tested code.

See also

References

  1. ^ a b "A Survey of Systems for Detection Serial Run-Time Errors" (PDF). Iowa State University High Performance Computing Group. Archived from the original (PDF) on 3 March 2016. Retrieved 20 September 2010.
  2. ^ Metzger, Robert (2004). Debugging by Thinking: A Multidisciplinary Approach. p. 490. ISBN 1555583075.
  3. ^ "Parasoft Insure++ at Parasoft website". Retrieved January 29, 2014.
  4. ^ Reddy, Martin. API Design for C++. p. 239.
  5. ^ Lier, Matthias (20 November 2010). Tools for High Performance Computing. p. 147. ISBN 978-3642112904.