基于传播引擎的指针引用错误检测
指针在C程序中应用广泛,指针引用错误多发且危害严重.目前代表性的检测工具由于使用方便性和检测精度不足以及难以处理大规模程序等原因,并不能满足实用需求.文中提出一种新型的错误检测方法,该方法基于域敏感、流敏感和上下文敏感的传播引擎,通过定义错误属性格、在源程序中对错误属性格值进行计算和传播来完成错误检测.在开放源码编译器Open64中实现了其原型系统Propagator.以空指针引用错误检测为实例研究内容,使用Apache、OpenSSH、gzip等应用领域广泛的典型应用为实验用例.与Saturn、Splint和Clang-SA进行对比,Propagator的平均检测时间仅为12s,误报率平均仅为13%,远低于对比工具,且没有发现漏报已知错误.上述结果表明,Propagator既提高了检测精度又保证了可扩展性,具有很好的实用前景.
空指针引用、错误属性格、上下文敏感、静态检测、传播引擎
36
TP314(计算技术、计算机技术)
自然科学基金青年科学基金项目61100011;国家"九七三"重点基础研究发展规划项目基金2011CB302504;国家"八六三"高技术研究发展计划项目基金2012AA010901;国家自然科学基金创新研究群体科学基金60921002;核高基国家重大科技专项基金项目2011ZX01028-001-002
2013-04-07(万方平台首次上网日期,不代表论文的发表时间)
共13页
432-444