White Paper: Memory Debugging in Parallel

Memory bugs, essentially a mistake in the management of heap memory, can occur in any program that is being written, enhanced, or maintained. A memory bug can be caused by a number of factors, including failure to check for error conditions; relying on nonstandard behavior; memory leaks including failure to free memory; dangling references such as failure to clear pointers; array bounds violations; and memory corruption such as writing to memory not owned/over running array bounds. These can sometimes cause programs to crash or generate incorrect “random” results, or more frustratingly, they may lurk in the code base for long periods of time — only to manifest themselves at the worst possible time. Memory problems are difficult to track down with conventional tools on even a simple desktop architecture, and are much more vexing then encountered on a distributed parallel architecture. This paper will review the challenges of memory debugging, with special attention paid to the challenges of parallel development and debugging, introduce a tool that helps developers identify and resolve memory bugs in parallel and distributed applications, highlight its major features and provide usage tips. Click here to download this white paper.