期刊文献+

Melton: a practical and precise memory leak detection tool for C programs 被引量:6

Melton: a practical and precise memory leak detection tool for C programs
原文传递
导出
摘要 Memory leaks are a common type of defect that is hard to detect manually. Existing memory leak detection tools suffer from lack of precise interprocedural analysis and path-sensitivity. To address this problem, we present a static interprocedural analysis algorithm, that performs fully pathsensitive analysis and captures precise function behaviors, to detect memory leak in C programs. The proposed algorithm uses path-sensitive symbolic execution to track memory actions in different program paths guarded by path conditions. A novel analysis model called memory state transition graph (MSTG) is proposed to describe the tracking process and its results. In order to do interprocedural analysis, the proposed algorithm generates a summary for each procedure from MSTG and applies the summary at the procedure's call sites. A prototype tool called Melton is implemented for this procedure. Melton was applied to five open source C programs and 41 leaks were found. More than 90% of these leaks were subsequently confirmed and fixed by their maintainers. For comparison with other tools, Melton was also applied to some programs in standard performance evaluation corporation (SPEC) CPU 2000 benchmark suite and detected more leaks than the state of the art approaches. Memory leaks are a common type of defect that is hard to detect manually. Existing memory leak detection tools suffer from lack of precise interprocedural analysis and path-sensitivity. To address this problem, we present a static interprocedural analysis algorithm, that performs fully pathsensitive analysis and captures precise function behaviors, to detect memory leak in C programs. The proposed algorithm uses path-sensitive symbolic execution to track memory actions in different program paths guarded by path conditions. A novel analysis model called memory state transition graph (MSTG) is proposed to describe the tracking process and its results. In order to do interprocedural analysis, the proposed algorithm generates a summary for each procedure from MSTG and applies the summary at the procedure's call sites. A prototype tool called Melton is implemented for this procedure. Melton was applied to five open source C programs and 41 leaks were found. More than 90% of these leaks were subsequently confirmed and fixed by their maintainers. For comparison with other tools, Melton was also applied to some programs in standard performance evaluation corporation (SPEC) CPU 2000 benchmark suite and detected more leaks than the state of the art approaches.
出处 《Frontiers of Computer Science》 SCIE EI CSCD 2015年第1期34-54,共21页 中国计算机科学前沿(英文版)
基金 This work was partially supported by the 973 Program of China (2014CB340701) and the National Natural Science Foundation of China (Grant No. 61003026).
关键词 memory leak bug finding static analysis symbolic execution memory leak, bug finding, static analysis, symbolic execution
  • 相关文献

参考文献33

  • 1Evans D. Static detection of dynamic memory errors. In: Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design an Implementation. 1996, 44-53.
  • 2Bush W R, Pincus J D, Sielaff D J. A static analyzer for finding dy- namic programming errors. Software-Practice and Experience, 2000, 30(7): 775-802.
  • 3Heine D L, Lam M S. A practical flow-sensitive and context-sensitive C and C++ memory leak detector. In: Proceedings of the ACM SIG- PLAN 2003.
  • 4Conference on Programming Language Design and Im- plementation. 2003, 168-181.
  • 5Xie Y, Aiken A. Context- and path-sensitive memory leak detection. In: Proceedings of the 2005 Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFF Symposium on the Foundations of Software Engineering. 2005, 115-125.
  • 6Orlovich M, Rugina R. Memory leak analysis by contradiction. In: International Static Analysis Symposium. 2006, 405-424.
  • 7Cherem S, Princehouse L, Rugina R. Practical memory leak detec- tion using guarded value-flow analysis. In: Proceedings of the ACM SIGPLAN 2007.
  • 8Conference on Programming Language Design and Implementation. 2007, 480-491.
  • 9Xu Z, Zhang J. Path and context sensitive inter-procedural memory leak detection. In: Proceedings of the 2008 International Conference on Quality Software. 2008, 412-420.
  • 10Jung Y, Yi K. Practical memory leak detector based on parameter- ized procedural summaries. In: Proceedings of the 2008 International Symposium on Memory Management. 2008, 131-140.

同被引文献13

引证文献6

二级引证文献18

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部