Overview
Insure++ can automatically find erroneous accesses to freed memory, 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.
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 overflows in automatic arrays, and overflows which involve pointers that accidentally "jump" from one valid memory region to another, as in the following example:
#includeAlso the source level instrumentation allows it to not only identify that a leak occurred, but where it occurred. 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.
Read more about this topic: Insure++