1. A method comprising: selecting a first allocated memory block from a plurality of allocated memory blocks, wherein the first allocated memory block includes a first allocated memory block address; searching other allocated memory blocks of the plurality of allocated memory blocks for a reference to the first allocated memory block; identifying that the first allocated memory block is a potential memory leak when the reference to the first allocated memory block is not found in the other allocated memory blocks of the plurality of allocated memory blocks; validating that the first allocated memory block is a memory leak using a plurality of successive validation phases in response to the first allocated memory block being identified as a potential memory leak, wherein each validation phase in the plurality of successive validation phases tests whether the first allocated memory block is a memory leak; not reporting the allocated memory block as a memory leak when the first allocated memory block is not validated after the plurality of successive validation phases even though the first allocated memory block was identified as a potential memory leak; and reporting the first allocated memory block as a memory leak when the validating confirms that the first allocated memory block is a memory leak.