Memory debugging

The powerful parallel memory debugging feature intercepts calls to the system memory allocation library, recording memory usage, and confirming correct usage of the library by performing heap and bounds checking.

Typical problems that can be resolved using memory debugging:

  • Memory exhaustion due to memory leaks can be prevented using the Current Memory Usage display, which groups and quantifies memory according to the location at which blocks have been allocated. Combine with Node Memory Threshold Detection to detect and diagnose potential out of memory errors early.

  • Persistent but random crashes caused by access of memory beyond the bounds of an allocation block can be diagnosed using the Guard Pages feature.

  • Crashing due to deallocation of the same memory block twice, deallocation via invalid pointers, and other invalid deallocations, for example deallocating a pointer that is not at the start of an allocation.