An MLK message describes leaked heap memory. There are no pointers to this block, or to anywhere within this block.
Purify generates a list of leaked memory blocks when you do any one of the following:
§ Exit the program and Memory leaks is selected in the Errors and Leaks tab in the Default Settings dialog box or Settings for exename dialog box. This is the default.
§ Call one of the Purify API functions: PurifyNewLeaks or PurifyAllLeaks.
§ Specify /LeaksAtExit=yes at the command line.
This message can occur when you allocate memory locally in some function and exit the function without first freeing the memory. This message can also occur when the last pointer referencing a block of memory is cleared, changed, or goes out of scope. If the section of the program where the memory is allocated and leaked is executed repeatedly, you might eventually run out of swap space, causing slow downs and crashes. This is a serious problem for long-running, interactive programs.
Notes:
§ If you call exit(), ExitProcess(), or TerminateProcess(), and these variables contain pointers to blocks of allocated memory, the memory is considered still in use and is not reported as a leak. However, if instead you return from main()and all local variables go out of scope, you might see additional memory leaks reported.
§ During process shutdown, Purify scans heaps for leaked memory before calls to HeapDestroy.
§ To track memory leaks, examine the allocation location call stack where the memory was allocated and determine where it should have been freed.
(C) Copyright IBM Corporation 1992, 2010.