Parasoft Insure++ is an automated runtime application-testing product that detects elusive C/C++ errors such as memory corruption, memory leaks, memory allocation errors, variable initialization errors, variable definition conflicts, pointer errors, library errors, I/O errors, and logic errors. During compilation, Insure++ reads and analyzes the source code. It then inserts test and analysis functions around every source code line. Insure++ builds a database of all program elements. At runtime, Insure++ checks each data value and memory reference against its database to verify consistency and correctness. Insure++ verifies all types of memory references, including those to static (global), stack, and shared memory. It can find memory corruption and memory leaks as well as any errors that allocate and free dynamic memory. Insure++ also checks third-party libraries and functions. Testing with Insure++ can uncover such errors as string manipulation, operations on uninitialized pointers, operations on pointers to unrelated data blocks, invalid pointer operations, incompatible variable declarations, and mismatched variable types.