【技术实现步骤摘要】
编译告警处理方法及装置
本专利技术涉及软件
,尤其涉及的是一种编译告警处理方法及装置。
技术介绍
编译告警是指在编译器(如GCC)编译源代码过程中,会输出告警(Warning)信息。通常在代码格式书写不规范、具有冗余的代码操作、编译器认为可疑的错误代码等情况下,会产生告警信息。告警信息可帮助软件开发人员发现源代码中隐藏错误及优化代码。一个大型的软件开发项目,由成千上万个源代码文件组成,源代码文件又按照不同功能特性划分为不同模块,通常不同模块由不同的开发团队维护。在开发和维护期间,每个模块的开发团队一般只修改所负责的模块,但编译时可能需要编译所有模块的源代码文件,以生成完整的软件包。编译所有模块的源代码文件时,可能会面临以下问题:比如,开发人员修改的模块本身只产生了一条告警信息,而其他模块却产生了两百多告警信息,为了确认所修改的模块是否引入了新的告警信息,就需要将所有告警信息检查一遍,从两百多条告警信息中找该新的告警。另外,如果开发人员修改了一个公共的代码头文件,可能会影响多个模块的源文件编译告警,这种情况更难以确定哪些告警是本次修改引入的。因此,上述方式中,编译告警处理会很耗时,并且手动查找有漏查的风险。
技术实现思路
有鉴于此,本专利技术提供一种编译告警处理方法及装置,缩短编译告警处理所需的耗时,有利于提升处理的准确性。本专利技术第一方面提供一种编译告警处理方法,该方法包括:获取特征集合,所述特征集合包含第一源代码被编译时产生的每一第一告警信息的特征 ...
【技术保护点】
1.一种编译告警处理方法,其特征在于,该方法包括:/n获取特征集合,所述特征集合包含第一源代码被编译时产生的每一第一告警信息的特征;/n确定第二源代码被编译时产生的每一第二告警信息的特征,所述第二源代码是所述第一源代码被修改后的源代码;/n针对每一第二告警信息的特征,检查所述特征集合中是否存在该特征,如果否,则确定该特征为目标特征;/n输出各目标特征对应的第二告警信息。/n
【技术特征摘要】
1.一种编译告警处理方法,其特征在于,该方法包括:
获取特征集合,所述特征集合包含第一源代码被编译时产生的每一第一告警信息的特征;
确定第二源代码被编译时产生的每一第二告警信息的特征,所述第二源代码是所述第一源代码被修改后的源代码;
针对每一第二告警信息的特征,检查所述特征集合中是否存在该特征,如果否,则确定该特征为目标特征;
输出各目标特征对应的第二告警信息。
2.如权利要求1所述的编译告警处理方法,其特征在于,确定第二源代码被编译时产生的每一第二告警信息的特征,包括:
针对每一第二告警信息,从该第二告警信息中提取被告警的文件名、被告警的代码信息及告警原因信息,并将提取的文件名、代码信息及告警原因信息作为该第二告警信息的特征。
3.如权利要求2所述的编译告警处理方法,其特征在于,从该第二告警信息中提取代码信息,包括:
检查该第二告警信息中的告警原因信息是否表示重定义标识符;
如果是,则从该第二告警信息中提取出标识符,并将提取的标识符作为代码信息;
如果否,则从该第二告警信息中提取出代码语句,并将提取的代码语句作为代码信息。
4.如权利要求1所述的编译告警处理方法,其特征在于,
所述特征包含:被告警的文件名、被告警的代码信息及告警原因信息,所述代码信息包含标识符、或代码语句;
检查所述特征集合中是否存在该特征,包括:
检查特征集合中是否存在包含该特征中的文件名的第一特征;
如果是,则依据该特征包含的代码信息及告警原因信息确定该特征集合中是否存在该特征;
如果否,则确定该特征集合中不存在该特征。
5.如权利要求4所述的编译告警处理方法,其特征在于,依据该特征包含的代码信息及告警原因信息确定该特征集合中是否存在该特征,包括:
检查所有第一特征中是否存在包含该特征中的代码信息的至少一个目标第一特征;
若是,则在任一个目标第一特征中的告警原因信息与该特征中的告警原因信息相同时,确定该特征集合中存在该特征;在所有目标第一特征中的告警原因信息与该特征中的告警原因信息均不同时,确定该特征集合中不存在该特征;
若否,则确定该特征集合中不存在该特征。
6.一种编译告警处理装置,其特征在于,该装置包括:
特征集合获取模块,用于获取特征集合,所述特征集...
【专利技术属性】
技术研发人员:魏方征,胡飞,林嘉琳,
申请(专利权)人:杭州迪普科技股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。