Deferred free queue: Length; Errors and Leaks tab, Properties Dialog Box (Error Detection)

Indicates the number of freed blocks of memory Purify retained in the deferred free queue before releasing the memory for re-use. If Purify detects a reference to a block on the deferred free queue, it displays a Free Memory Read (FMR) or Free Memory Write (FMW) message.

When an instrumented program frees a block of memory, Purify marks the block as inaccessible, but does not free it. To help detect dangling pointer accesses to freed memory, Purify defers returning freed memory blocks to the heap by keeping it on this deferred free queue. For example, if you set Length to 5, Purify actually frees the first block when the 6th block is freed by the program.

A large queue length increases the chances of catching dangling pointer accesses long after the block has been freed, providing better error detection for FMR and FMW messages. A smaller queue length limits the amount of memory on the deferred free queue, taking up less memory at run time but providing a lower level of error detection.

Note:

§      Purify cannot detect FMR messages in modules instrumented with minimal instrumentation and detects FMW messages late, reporting them as Late Detect Free Memory Write (FMWL) messages.

(C) Copyright IBM Corporation 1992, 2010.