Memory profiling warnings

Warning messages indicate a situation in which the program might not fail immediately, but might later fail sporadically, often without any apparent reason and with unexpected results. Warning messages often pinpoint serious issues you should investigate before you check in code.

Memory in Use (MIU)

An MIU message indicates heap allocations to which the program has a pointer.

Note: On exit, small amounts of memory in use in programs that run for a short time are not significant. However, you should fix large amounts of memory in use in long running programs to avoid out-of-memory problems.

Memory profiling generates a list of memory blocks in use when you activate the MIU Memory In Use option in the memory profiling configuration settings.

Late Detect Array Bounds Write (ABWL)

An MLK warning describes leaked heap memory. There are no pointers to this block or to anywhere within this block.

Memory Profiling generates a list of leaked memory blocks when you activate the MLK Memory Leak option in the Memory Profiling Settings.

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. To track memory leaks, examine the allocation location call stack where the memory was allocated and determine where it should have been freed.

You can ignore memory leaks that do not have a call stack, for memory allocations that occur before the application starts by changing the following configuration setting: Runtime Analysis > Memory Profiling > Instrumentation control > Only show memory leaks with call stack.

Memory Potential Leak (MPK)

An MPK warning describes heap memory that might leak. There are no pointers to the start of the block, but there appear to be pointers pointing towards somewhere within the block. In order to free this memory, the program must subtract an offset from the pointer to the interior of the block. In general, you should consider a potential leak to be an actual leak until you can prove that it is not by identifying the code that performs this subtraction.

Memory in use can appear as an MPK if the pointer returned by some allocation function is offset. This message can also occur when you reference a substring within a large string. In rare cases, leaked memory might cause an MPK warning if some non-pointer integer within the program space, when interpreted as a pointer, points to an otherwise leaked block of memory. Inspection of the code should easily differentiate between different causes of MPK messages.

Memory profiling generates a list of potentially leaked memory blocks when you activate the MPK Memory Potential Leak option in the memory profiling configuration settings.

File in Use (FIU)

An FIU message indicates a file that was opened, but never closed. An FIU message can indicate that the program has a resource leak.

Memory profiling generates a list of files in use when you activate the FIU Files In Use option in the memory profiling configuration settings.

Signal Handled (SIG)

A SIG message indicates that a system signal has been received.

Memory profiling generates a list of received signals when you activate the SIG Signal Handled option in the memory profiling configuration settings.

Feedback