Orlovich, MaksimRugina, Radu2007-04-042007-04-042006-12-01http://techreports.library.cornell.edu:8081/Dienst/UI/1.0/Display/cul.cis/TR2006-2059https://hdl.handle.net/1813/5752We present a novel leak detection algorithm. To prove the absence of a memory leak, the algorithm assumes its presence and runs a backward heap analysis to disprove this assumption. We have implemented this approach in a memory leak analysis tool and used it to analyze several routines that manipulate linked lists and trees. Because of the reverse nature of the algorithm, the analysis can locally reason about the absence of memory leaks. We have also used the tool as a scalable, but unsound leak detector for C programs. The tool has found several bugs in larger programs from the SPEC2000 suite.345944 bytesapplication/pdfen-UScomputer sciencetechnical reportMemory Leak Analysis by Contradictiontechnical report