检索规则说明:AND代表“并且”;OR代表“或者”;NOT代表“不包含”;(注意必须大写,运算符两边需空一格)
检 索 范 例 :范例一: (K=图书馆学 OR K=情报学) AND A=范并思 范例二:J=计算机应用与软件 AND (U=C++ OR U=Basic) NOT M=Visual
作 者:董玉坤[1] 位欣欣 孙玉雪 唐道龙 DONG Yukun;WEI Xinxin;SUN Yuxue;TANG Daolong(School of Computer Science and Technology,China University of Petroleum(East China),Qingdao,Shandong 266580,China)
机构地区:[1]中国石油大学(华东)计算机科学与技术学院,山东青岛266580
出 处:《计算机工程与应用》2022年第19期76-87,共12页Computer Engineering and Applications
基 金:山东省自然科学基金(ZR2021MF058)。
摘 要:C语言执行效率高,使用范围广泛,然而存在的安全问题也日益突出。内存错误是C程序中常见的缺陷,严重时将导致系统崩溃。传统的人工修复内存错误耗费大量人力物力,并可能在修复过程中引入新的错误。针对这个问题,提出了一种基于跟踪机制的程序自动修复方法。构建包含程序文件中变量作用分布的作用域树;提出基于全局指针的跟踪机制,通过插入全局指针跟踪发生错误的分配内存在程序中的状态;基于全局指针自动生成补丁,利用作用域树定位缺陷修复位置从而来安全地修复内存错误。基于上述过程,实现了原型工具DTSFix,并在开源程序中对其进行了评估。实验结果表明,DTSFix能够有效检测并修复程序中的真实缺陷而且不产生副作用。C is a highly efficient and widely used language,but its widespread use has been accompanied by growing security issues.The memory error is a common error in C programs,which will cause the system to collapse in severe cases.Manually fixing memory error requires considerable efforts,and potentially introduces new errors in the repair process.To address this problem,an automatic program repair method based on tracking mechanism is proposed.Firstly,it con-structs the scope-tree containing the distribution of variables in the program file.Then,a global pointer-based tracking mechanism is proposed to track the state of allocated memory with errors in the program.Finally,a patch is automatically generated based on a global pointer,and a scope-tree is used to locate where the defect is fixed so that the memory error can be safely repaired.Based on the above process,the prototype tool DTSFix has implemented,in addition evaluated it with open-source programs.The experimental results show that DTSFix can effectively detect and repair the real defects in open-source programs without side effects.
分 类 号:TP311[自动化与计算机技术—计算机软件与理论]
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在链接到云南高校图书馆文献保障联盟下载...
云南高校图书馆联盟文献共享服务平台 版权所有©
您的IP:216.73.216.38