基于CFG的函数调用关系静态分析方法
Static Analysis Method of Generating Function Call Relations Based on CFG作者机构:中国科学技术大学计算机科学与技术学院合肥230027 中国科学技术大学安徽省计算与通信软件重点实验室合肥230027 中国科学技术大学先进技术研究院合肥230027
出 版 物:《计算机系统应用》 (Computer Systems & Applications)
年 卷 期:2015年第24卷第11期
页 面:167-172页
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
基 金:安徽省自然科学基金(1408085MKL06) 高等学校学科创新引智计划资助(B07033)
摘 要:函数调用关系能够反映软件系统中函数间的依赖关系,完整的函数调用关系可以更好地辅助程序验证和死锁分析,提升验证和分析的完备性.现有静态分析函数调用关系的方法不能准确分析函数指针和虚函数的调用,影响了其分析结果的准确性.针对这一问题本文提出了一种基于控制流图(Control Flow Graph,CFG)的函数调用关系静态分析方法,该方法首先使用GCC插件静态获取源代码中的类型和函数CFG等信息并构建分析路径,然后采用本文提出的模拟仿真算法分析程序中的语句,并解析函数指针和虚函数的调用,最后基于分析结果生成完整的函数调用关系.实验结果表明,该方法能够很好地支持对函数指针和虚函数的处理,提升了分析结果的准确性.