Insure++
| Developer(s) | Parasoft |
|---|---|
| Stable release | 7.4.0 / March 28, 2012 |
| Operating system | Cross Platform |
| Type | Profiler / Memory debugger |
| License | Proprietary software |
| Website | Insure++ at Parasoft.com |
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 and Valgrind.[1]
Overview [edit]
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,[clarification needed] 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:
#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) */ }
Also 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.
References [edit]
- ^ a b "http://jjc.public.iastate.edu/Runtime.errors.Paper.March4.2006.pdf". Iowa State University High Performance Computing Group. Retrieved 20 September 2010.
External links [edit]
| This programming tool–related article is a stub. You can help Wikipedia by expanding it. |