基于静态程序分析的空指针解引用错误修复

来源 :南京大学 | 被引量 : 0次 | 上传用户:CrazyDesire
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着信息技术的发展,计算机软件逐渐成为人们生活中必不可少的一部分,然而计算机软件中不可避免地存在着程序错误,这些错误可能导致严重的后果。指针作为诸多编程语言中最重要的变量类型之一,被广泛地应用于各种计算机软件的编写过程中。然而指针是一把双刃剑,指针的使用可以简化编程任务,但也容易引起程序错误。空指针解引用错误是常见的由指针使用引起的程序错误,触发该错误可能导致程序崩溃等严重后果,因此如何修复该错误是工业界广泛关注的问题。然而,在代码规模较大的计算机软件中,人工对空指针解引用错误进行修复效率低下,往往需要借助自动化程序修复工具。但是,现有的自动化程序修复工具对空指针解引用错误的修复效果往往欠佳,不仅修复过程耗时较长,生成补丁的正确率也偏低。在此背景下,本文对程序中空指针解引用错误的修复算法进行了研究,提出一种适用于C/C++程序的基于静态程序分析的空指针解引用错误修复建议生成算法。本文主要工作如下:1.提出一种适用于C/C++程序的基于静态程序分析的空指针解引用错误修复建议生成算法,该算法以空指针解引用错误的错误触发点的详细信息以及程序的抽象语法树与过程间控制流图为输入,通过对错误触发点处被解引用指针的赋值路径进行追溯以寻找合适的修复代码插入点,最后依据预先定义的修复模板生成修复建议。2.利用现有代码静态分析平台,使用C++语言开发基于本文所提出空指针解引用错误修复建议生成算法的程序修复工具,同时对算法各部分与使用的工具函数进行封装以提升代码质量。3.以开源项目libjpeg-turbo与cpython作为基准数据集对开发的程序修复工具进行实验评估。使用静态程序分析工具infer在应用工具生成的修复建议之前与之后分两次对基准数据集进行分析,对比两次分析生成的错误报告以评估工具质量。实验结果表明,基于本文算法开发的程序修复工具能在1秒内为libjpeg-turbo生成修复建议,应用后能消除其中100%的空指针解引用错误;能在14秒内为cpython生成修复建议,应用后能消除其中75.9%的空指针解引用错误。
其他文献
目的:对比分析金属支架和塑料支架治疗Bismuth IV型肝门胆管癌的安全性和有效性,探讨不同支架类型及支架置入方式在临床的应用价值,总结经验,为今后Bismuth IV型肝门胆管癌患者选择合适的支架方案提供参考。方法:回顾性分析2014年1月至2019年12月在我院成功行内镜逆行胰胆管造影术(Endoscopic retrograde cholangiopancreatography,ERCP)
目的:研究不同穴组的电针预处理对大鼠肝门阻断后肝脏缺血再灌注损伤(HIRI)的防治效应和对肝脏组织高迁移率族蛋白B1(HMGB 1)表达的影响。方法:选取70只雄性SD大鼠,应用随机数字表法分为假手术组、模型组、肝俞组、肝俞+阳陵泉组、肝俞+内关组、肝俞+太冲组和非经非穴组,每组10只。模型组采用无创动脉夹阻断供应肝中叶和左叶的动脉、静脉和胆管1 h,解除阻断后再灌注4 h以构建70%HIRI模型
目的:研究分析胆道软硬镜联合钬激光碎石在合并左肝肥大右肝萎缩的复杂性肝胆管结石的临床疗效。方法:回顾性分析2016年4月至2020年9月湖南省人民医院合并左肝肥大右肝萎缩的复杂性肝胆管结石病人91例,手术后均复查腹部CT。43例行胆道软硬镜联合钬激光术患者纳入观察组,48例使用胆道软镜联合取石网篮患者纳入对照组,对照组术中视情况采用胆道软镜、取石网篮、胆道刮匙、灌洗器盥洗、肝脏部分切除、肝实质切开
本文旨在研究日粮能量和蛋白质水平对哺乳期湖羊生长性能、泌乳性能及其羔羊生长发育的影响。选取30只产双羔的母羊,将其随机分为5组,每组包含6个重复,每个重复一只羊。其中3个组的母羊被饲喂能量水平不同(E1:9.52 MJ/kg、E2:10.02 MJ/kg和E3:10.52 MJ/kg)的饲粮,蛋白水平保持相同:10.99%,其对应的羔羊被分为SE1、SE2、SE3组;另外3个组的母羊被饲喂蛋白水平
研究目的探讨根治性切除术后ICC患者的预后影响因素及肝周淋巴结清扫的意义。研究方法回顾性收集2014年1月-2018年12月于我院肝胆外科行了根治性切除的ICC患者临床资料及随访资料。主要包括:性别、年龄、病毒性肝炎病史、胆道寄生虫史、术前CA19-9、术前AFP、术前CEA、术前肝功能、肿瘤直径、肿瘤有无子灶、血管或神经的侵犯、手术时间、术中失血量、术后并发症、淋巴转移情况以及术后随访资料。采用
随着现代教育改革的开展,对学生核心素养的培养以及学生的终身发展的研究越来越受到教育工作者的关注。化学为现代尖端技术的发展开发出了大量的新型材料,为解决能源、环保和资源的再生利用提出更为科学的途径和方法,对人类生活质量的提高以及疾病的防治提供广阔的物质基础。作为应用性的自然科学,通过化学知识的学习和实验技能的培养,能极大地提升学生思维的严谨性、条理性,并促进探究能力和创新能力的发展,为社会输送高质量
近年来,刺激响应性聚合物在生物医学等领域的应用越发广泛,具有不同拓扑结构和刺激响应行为的聚合物受到越来越多的关注。超支化聚合物具有低黏度、高流变性、高溶解度等特点,其高度分支性和三维结构可以形成足够的空间空腔用于封装小分子药物客体,而末端大量的基团可被进一步功能化。此外,它可以在较低浓度下自组装成纳米胶束。因此,在超支化结构中引入刺激响应性基团形成的刺激响应性超支化聚合物,在生物医学领域,尤其是作
教材是教师进行教学活动的重要文本资料与信息载体,教师利用教材通过教学活动传递给学生知识与情感价值,培养学生各方面发展。教师作为国家教育方针政策的落实者,教师对新教材的适应程度影响育人效果与课改方向。2020年九月起,湖南省在新高一年级使用2019版人教版高中化学教材,教师对新教材是否适应?在新教材教学中存在哪些困惑?有哪些具体原因会造成教材适应性方面的问题?可以采取哪些措施提高教师对高中化学新教材
上世纪八十年代,随着啁啾放大技术的出现,脉冲激光正式步入了超短超强激光时代,相关成果也被广泛的应用于物理、化学、材料、医学等众多学科领域。超短脉冲激光给我们提供了一套超快‘拍照快门’,能够帮助我们‘看到’和研究飞秒甚至亚飞秒尺度的超快动力学物理过程。目前实验上,高次谐波谱技术已报道了最短为43 as的孤立极紫外(XUV)脉冲,同时X射线自由电子激光(XFEL)也能产生飞秒甚至亚飞秒的软/硬X射线。
随着网络通信技术的飞速发展,现代社会对网络安全的要求越来越高。作为人们掌握网络安全态势、发现网络异常的主要数据来源,网络安全日志的分析工作一直都是业界研究的重点。其中,可视分析学结合人类视觉的高效认知能力、人脑的逻辑判断能力和计算机的高速计算能力,解决了传统日志分析工作中,用户分析负担过重、工作效率不高、结果准确性不佳等问题,是网络安全分析人员把握网络整体特征、定位网络异常、发现威胁主机的理想方案