首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】一种基于堆栈信息的编译器崩溃类缺陷去重方法_南京大学_202410294702.9 

申请/专利权人:南京大学

申请日:2024-03-07

公开(公告)日:2024-06-11

公开(公告)号:CN118170652A

主分类号:G06F11/36

分类号:G06F11/36;G06F18/241;G06F8/41

优先权:

专利状态码:在审-实质审查的生效

法律状态:2024.06.28#实质审查的生效;2024.06.11#公开

摘要:本发明提出了一种基于堆栈信息的编译器崩溃类缺陷去重方法。该方法利用编译器崩溃时生成的堆栈信息,并结合编译器运行的上下文信息,对触发相同缺陷的崩溃报告进行识别和去重。具体而言,该方法首先收集编译器运行的上下文和运行至崩溃处的堆栈信息。然后,通过对上下文和堆栈信息进行分析和比对,将具有相同或相似堆栈信息的崩溃识别为重复的缺陷以进行去重。与现有方法相比,本发明的优点在于充分利用了编译器运行的上下文和堆栈信息,提高了崩溃类缺陷的识别和去重的准确性,有效减少开发人员缺陷分析和定位的工作量。

主权项:1.基于堆栈信息的编译器崩溃类缺陷去重方法,其特征在于利用编译器崩溃时生成的堆栈信息,结合其他相关的上下文信息,对缺陷进行独特的标识和分类。这样,开发人员可以更容易地对缺陷进行管理和跟踪,避免重复的修复工作和资源浪费。本方法主要包括下列步骤:1编译并提取堆栈信息:对于指定测试用例,编译时需要启动相应的编译命令行选项以输出编译过程中堆栈信息。堆栈信息是指在编译器崩溃时生成的函数调用栈轨迹,通常包含了导致崩溃的函数调用序列,对于识别和去重缺陷非常有用。方法需要记录输出的堆栈信息。2提取运行上下文信息:为了提高去重的准确性,本方法提取编译运行的上下文信息,并将这些信息加入堆栈信息所在的集合中。这些信息可能包括编译器的版本、操作系统环境、编译参数等。综合考虑这些信息,可以更准确地区分不同的缺陷,并避免将不同的缺陷错误地归类为同一问题。3分析和对比堆栈信息:对提取到的堆栈信息和数据库中已有的堆栈信息词条进行逐一分析和比对,以识别具有相同或相似堆栈信息的缺陷。这可以通过比较函数调用栈轨迹的相似性来实现。相似的堆栈信息可能表示相同的缺陷或者同一类缺陷。具体来说,在堆栈信息比对中,可以将函数调用栈视为一个集合,并使用Jaccard相似系数计算两个堆栈之间的相似度δ。Jaccard相似系数定义为也可以用其它的相似度计算公式来计算δ。4标识和分类缺陷:一旦识别出相同或相似的崩溃类缺陷,该方法会对它们进行标识和分类。这可以通过为每个缺陷分配一个唯一的标识符来实现,以便开发人员可以更轻松地管理和跟踪缺陷。具体来说,根据不同的编译器,设置相似度阈值为δt,如果步骤2中发现在数据库中存在某一词条使得计算出的δ大于等于δt,则认为当前测试用例触发的崩溃类缺陷与历史触发缺陷的测试用例重复,需要舍弃当前测试用例。若数据库中没有一个词条使得计算出的δ大于等于δt,则认为当前测试用例触发了一个新的崩溃类缺陷,需要将将当前测试用例的上下文信息和堆栈信息存入数据库中。

全文数据:

权利要求:

百度查询: 南京大学 一种基于堆栈信息的编译器崩溃类缺陷去重方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。