Practical memory leak detector based on parameterized procedural summaries

作者: Yungbum Jung , Kwangkeun Yi

DOI: 10.1145/1375634.1375653

关键词:

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

参考文章(17)
Erik M. Nystrom, Hong-Seok Kim, Wen-mei W. Hwu, Bottom-Up and Top-Down Context-Sensitive Summary-Based Pointer Analysis Static Analysis. pp. 165- 180 ,(2004) , 10.1007/978-3-540-27864-1_14
Maksim Orlovich, Radu Rugina, Memory Leak Analysis by Contradiction Static Analysis. pp. 405- 424 ,(2006) , 10.1007/11823230_26
Yichen Xie, Alex Aiken, Scalable error detection using boolean satisfiability symposium on principles of programming languages. ,vol. 40, pp. 351- 363 ,(2005) , 10.1145/1040305.1040334
Sigmund Cherem, Lonnie Princehouse, Radu Rugina, Practical memory leak detection using guarded value-flow analysis Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation - PLDI '07. ,vol. 42, pp. 480- 491 ,(2007) , 10.1145/1250734.1250789
David Evans, Static detection of dynamic memory errors Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation - PLDI '96. ,vol. 31, pp. 44- 53 ,(1996) , 10.1145/231379.231389
Patrick Cousot, Radhia Cousot, Abstract interpretation Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL '77. pp. 238- 252 ,(1977) , 10.1145/512950.512973
John Whaley, Martin Rinard, Compositional pointer and escape analysis for Java programs conference on object-oriented programming systems, languages, and applications. ,vol. 34, pp. 187- 206 ,(1999) , 10.1145/320384.320400
Manuvir Das, Sorin Lerner, Mark Seigle, ESP Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation - PLDI '02. ,vol. 37, pp. 57- 68 ,(2002) , 10.1145/512529.512538
Seth Hallem, Benjamin Chelf, Yichen Xie, Dawson Engler, A system and language for building system-specific, static analyses Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation - PLDI '02. ,vol. 37, pp. 69- 82 ,(2002) , 10.1145/512529.512539
David L. Heine, Monica S. Lam, Static detection of leaks in polymorphic containers Proceeding of the 28th international conference on Software engineering - ICSE '06. pp. 252- 261 ,(2006) , 10.1145/1134285.1134321