Practical memory leak detector based on parameterized procedural summaries

  • Authors:
  • Yungbum Jung;Kwangkeun Yi

  • Affiliations:
  • Seoul National University, Seoul, South Korea;Seoul National University, Seoul, South Korea

  • Venue:
  • Proceedings of the 7th international symposium on Memory management
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a static analyzer that detects memory leaks in C programs. It achieves relatively high accuracy at a relatively low cost on SPEC2000 benchmarks and several open-source software packages, demonstrating its practicality and competitive edge against other reported analyzers: for a set of benchmarks totaling 1,777 KLOCs, it found 332 bugs with 47 additional false positives (a 12.4% false-positive ratio), and the average analysis speed was 720 LOC/sec. We separately analyze each procedure's memory behavior into a summary that is used in analyzing its call sites. Each procedural summary is parameterized by the procedure's call context so that it can be instantiated at different call sites. What information to capture in each procedural summary has been carefully tuned so that the summary should not lose any common memory-leak-related behaviors in real-world C programs. Because each procedure is summarized by conventional fixpoint iteration over the abstract semantics (a la abstract interpretation), the analyzer naturally handles arbitrary call cycles from direct or indirect recursive calls.