计算机学报
計算機學報
계산궤학보
CHINESE JOURNAL OF COMPUTERS
2013年
2期
432-444
,共13页
衷璐洁%霍玮%李丰%陈聪明%冯晓兵%张兆庆
衷璐潔%霍瑋%李豐%陳聰明%馮曉兵%張兆慶
충로길%곽위%리봉%진총명%풍효병%장조경
空指针引用%错误属性格%上下文敏感%静态检测%传播引擎
空指針引用%錯誤屬性格%上下文敏感%靜態檢測%傳播引擎
공지침인용%착오속성격%상하문민감%정태검측%전파인경
指针在C程序中应用广泛,指针引用错误多发且危害严重.目前代表性的检测工具由于使用方便性和检测精度不足以及难以处理大规模程序等原因,并不能满足实用需求.文中提出一种新型的错误检测方法,该方法基于域敏感、流敏感和上下文敏感的传播引擎,通过定义错误属性格、在源程序中对错误属性格值进行计算和传播来完成错误检测.在开放源码编译器Open64中实现了其原型系统Propagator.以空指针引用错误检测为实例研究内容,使用Apache、OpenSSH、gzip等应用领域广泛的典型应用为实验用例.与Saturn、Splint和Clang-SA进行对比,Propagator的平均检测时间仅为12s,误报率平均仅为13%,远低于对比工具,且没有发现漏报已知错误.上述结果表明,Propagator既提高了检测精度又保证了可扩展性,具有很好的实用前景.
指針在C程序中應用廣汎,指針引用錯誤多髮且危害嚴重.目前代錶性的檢測工具由于使用方便性和檢測精度不足以及難以處理大規模程序等原因,併不能滿足實用需求.文中提齣一種新型的錯誤檢測方法,該方法基于域敏感、流敏感和上下文敏感的傳播引擎,通過定義錯誤屬性格、在源程序中對錯誤屬性格值進行計算和傳播來完成錯誤檢測.在開放源碼編譯器Open64中實現瞭其原型繫統Propagator.以空指針引用錯誤檢測為實例研究內容,使用Apache、OpenSSH、gzip等應用領域廣汎的典型應用為實驗用例.與Saturn、Splint和Clang-SA進行對比,Propagator的平均檢測時間僅為12s,誤報率平均僅為13%,遠低于對比工具,且沒有髮現漏報已知錯誤.上述結果錶明,Propagator既提高瞭檢測精度又保證瞭可擴展性,具有很好的實用前景.
지침재C정서중응용엄범,지침인용착오다발차위해엄중.목전대표성적검측공구유우사용방편성화검측정도불족이급난이처리대규모정서등원인,병불능만족실용수구.문중제출일충신형적착오검측방법,해방법기우역민감、류민감화상하문민감적전파인경,통과정의착오속성격、재원정서중대착오속성격치진행계산화전파래완성착오검측.재개방원마편역기Open64중실현료기원형계통Propagator.이공지침인용착오검측위실례연구내용,사용Apache、OpenSSH、gzip등응용영역엄범적전형응용위실험용례.여Saturn、Splint화Clang-SA진행대비,Propagator적평균검측시간부위12s,오보솔평균부위13%,원저우대비공구,차몰유발현루보이지착오.상술결과표명,Propagator기제고료검측정도우보증료가확전성,구유흔호적실용전경.