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.