申请/专利权人:南京大学
申请日:2024-01-11
公开(公告)日:2024-04-09
公开(公告)号:CN117851260A
主分类号:G06F11/36
分类号:G06F11/36
优先权:
专利状态码:在审-实质审查的生效
法律状态:2024.04.26#实质审查的生效;2024.04.09#公开
摘要:本发明提供了一种基于多组对抗配置的编译器缺陷定位方法,主要包括下列步骤:1识别缺陷相关的细粒度优化选项;2基于不同配置生成多组对抗配置;3基于程序频谱获取编译器文件的可疑度排名;4聚合多组排名汇总定位结果。本发明解决了现有方法仅使用单个对抗配置的编译器缺陷定位方法效果不够理想的问题,生成和融合多个对抗配置的定位结果来提升编译器缺陷定位的效果。该方法通过生成和融合多组不同的对抗配置,可以更加有效地定位编译器的缺陷,帮助开发者快速修复缺陷,提升编译器质量,为后续依赖编译器的软件工程应用提供了基础支撑。
主权项:1.一种基于多组对抗配置的编译器缺陷定位方法,其特征在于利用多组对抗配置来定位编译器缺陷所在的文件。当前方法仅使用一组对抗配置来定位缺陷,因具有对抗关系的覆盖信息有限,无法有效隔离缺陷无关的缺陷代码,效果受限。为此,本方法通过生成多组不同的对抗配置,聚合多组对抗配置定位的结果,以充分利用不同对抗配置隔离缺陷无关代码的能力,从而更加有效定位编译器的缺陷代码,进而有效提升编译器的质量。本方法主要包括下列步骤:1识别缺陷相关的细粒度优化选项:首先,针对给定的可触发缺陷的测试程序,以编译器触发缺陷的最低优化级别为基础,逐个独立禁用该优化级别上默认开启的细粒度优化选项,形成一个新的配置。然后使用该配置编译并执行测试程序,观察是否触发缺陷。如果缺陷被掩盖,将该选项识别为缺陷相关的细粒度优化选项。2基于不同配置生成多组对抗配置:接着,选择一个触发缺陷的配置作为基础,在该配置上逐个独立禁用与缺陷相关的细粒度优化选项,生成一组对抗配置。使用不同的基础配置重复此过程,生成多个组内相似但组间不同的对抗配置集合。3基于程序频谱获取编译器文件的可疑度排名:对每一组对抗配置,使用组内配置编译并执行测试程序,利用覆盖工具收集差异化的编译器执行信息。通过基于程序频谱的缺陷定位技术,排除与缺陷无关的文件,并为每个可能与缺陷相关的编译器文件根据其可疑度进行排名。4聚合多组排名汇总定位结果:进行多轮的聚合,每轮扩大聚合的范围。通过多数投票的方式,将步骤3中通过多组对抗配置生成的多组排名进行聚合,汇总定位结果,并推荐可疑的代码文件。
全文数据:
权利要求:
百度查询: 南京大学 一种基于多组对抗配置的编译器缺陷定位方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。