Memory Error Detection

Runtime memory debugging for C++ and C: Memory corruption, memory leaks, pointer errors, more

  • Memory error detection industry leader since 1993
  • Find and fix erratic runtime behavior like sporadic crashing and hanging
  • Expose serious defects that have evaded all other testing efforts for years
  • Expose errors during 64-bit porting
  • Optimize application memory usage

Expose Elusive Errors

Errors such as memory corruption, memory leaks, access outside of array bounds, invalid pointers, and the like often go undetected during normal testing, only to result in application crashes in the field.

Parasoft automatically identifies a variety of difficult-to-track programming and memory-access errors, along with potential defects and inefficiencies in memory usage.

Errors Detected

During testing, Parasoft Test checks all types of memory references, including those to static (global), stack, and shared memory — both in your code and in third party libraries. Errors detected include:
  • Corrupted heap and stack memory
  • Use of uninitialized variables and objects
  • Array and string bounds errors on heap and stack
  • Use of dangling, NULL, and uninitialized pointers
  • All types of memory allocation and free errors or mismatches
  • All types of memory leaks
  • Type mismatches in global declarations, pointers, and function calls
  • Some varieties of dead code (compile-time)

Multiple Use Modes

Parasoft’s patented source instrumentation detects more error types than other memory error detection technologies, and also provides complete information indicating the root causes of the errors found. For example, it tells you exactly when-and at what line of code-a leak occurred.

When full source code instrumentation is not possible or desirable, two “lighter” analysis modes are available:

  • Linking with runtime analysis – detects and reports most error types, including leaks, bad memory references, standard API usage errors, etc,.
  • Analysis without recompilation or relinking— checks all the data memory references a process makes, reporting reads of uninitialized memory, bounds errors, and memory leaks.

Memory Visualization

Parasoft can also visualize how an application uses memory—providing a graphical view of all memory allocations, over time, with specific visibility into overall heap usage, block allocations, possible outstanding leaks or bottlenecks, and so on. This helps you:
  • See how much memory an application uses in response to particular user events.
  • Compare an application’s overall memory usage to its expected memory usage.
  • Look for memory fragmentation to see if different allocation strategies might improve performance.
  • Detect the most subtle memory leaks, which cause problems over time.