Information About

Insure++




Insure++ can automatically find erroneous accesses to free()d memory, array bounds violations, freeing unallocated memory (which often happens when a programmer free()s the same memory twice, or when he free()s global or stack memory), and many others.

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

#include
int main()
{
  • p = Malloc (1024); /--- first dynamically-allocated block ---/

  • q = malloc(1024); /--- second block ---/

  • At this point, "p" is very (un)likely to point into the second block.

  • /

  • p = 'a'; /--- invalid write (past the end of the first block) ---/

  • return 0;

}


EXTERNAL LINKS