计算机工程与科学
• 论文 • 上一篇 下一篇
陈贝1,许庆国1,2
收稿日期:
修回日期:
出版日期:
发布日期:
基金资助:
国家自然科学基金(61170044,61572306,61502294)
CHEN Bei1,XU Qingguo1,2
Received:
Revised:
Online:
Published:
摘要:
C++是一种非常流行的计算机编程语言,在使用的过程中容易出现内存泄漏问题,而该问题往往难以识别。给出了一种对C++内存泄漏问题进行分析的方法,该方法得到C++源代码的抽象语法树,从抽象语法树中提取程序控制流图,然后将类的构造函数、普通成员函数以及析构函数的程序控制流图相互连接形成新的程序控制流图,并设计算法对控制流图进行检测。最后通过一些内存泄漏的典型实例进行测试,实验表明本方法有效。
关键词: 内存泄漏, 静态检测, 抽象语法树, 控制流图
Abstract:
C++ is a very popular computer programming language and memory leakage is one of the most hardtofind common error in C++ programs. We design a static analyzer that can detect memory leakage for C++ programs. Firstly, we extract the control flow graph from the abstract syntax tree generated from C++ source via g++. Secondly, we build some new control flow graphs by connecting the control flow graphs of memory functions for the same class. Finally, we design and implement an algorithm to analyze the new control flow graphs to report all possible errors. Experiment results, for some examined examples, show that our method is effective.
Key words: memory leakage, static testing, abstract syntax tree, control flow graph
陈贝1,许庆国1,2. 基于静态检测的C++内存泄漏分析[J]. 计算机工程与科学.
CHEN Bei1,XU Qingguo1,2.
0 / / 推荐
导出引用管理器 EndNote|Ris|BibTeX
链接本文: http://joces.nudt.edu.cn/CN/
http://joces.nudt.edu.cn/CN/Y2017/V39/I01/118