编译告警处理方法及装置制造方法及图纸

技术编号:24167673 阅读:47 留言:0更新日期:2020-05-16 01:57
本发明专利技术提供一种编译告警处理方法及装置,缩短编译告警处理所需的耗时,有利于提升处理的准确性。该方法包括:获取特征集合,所述特征集合包含第一源代码被编译时产生的每一第一告警信息的特征;确定第二源代码被编译时产生的每一第二告警信息的特征,所述第二源代码是所述第一源代码被修改后的源代码;针对每一第二告警信息的特征,检查所述特征集合中是否存在该特征,如果否,则确定该特征为目标特征;输出各目标特征对应的第二告警信息。

Compiling alarm processing method and device

【技术实现步骤摘要】
编译告警处理方法及装置
本专利技术涉及软件
,尤其涉及的是一种编译告警处理方法及装置。
技术介绍
编译告警是指在编译器(如GCC)编译源代码过程中,会输出告警(Warning)信息。通常在代码格式书写不规范、具有冗余的代码操作、编译器认为可疑的错误代码等情况下,会产生告警信息。告警信息可帮助软件开发人员发现源代码中隐藏错误及优化代码。一个大型的软件开发项目,由成千上万个源代码文件组成,源代码文件又按照不同功能特性划分为不同模块,通常不同模块由不同的开发团队维护。在开发和维护期间,每个模块的开发团队一般只修改所负责的模块,但编译时可能需要编译所有模块的源代码文件,以生成完整的软件包。编译所有模块的源代码文件时,可能会面临以下问题:比如,开发人员修改的模块本身只产生了一条告警信息,而其他模块却产生了两百多告警信息,为了确认所修改的模块是否引入了新的告警信息,就需要将所有告警信息检查一遍,从两百多条告警信息中找该新的告警。另外,如果开发人员修改了一个公共的代码头文件,可能会影响多个模块的源文件编译告警,这种情况更难以确定哪些告警是本次修改引入的。因此,上述方式中,编译告警处理会很耗时,并且手动查找有漏查的风险。
技术实现思路
有鉴于此,本专利技术提供一种编译告警处理方法及装置,缩短编译告警处理所需的耗时,有利于提升处理的准确性。本专利技术第一方面提供一种编译告警处理方法,该方法包括:获取特征集合,所述特征集合包含第一源代码被编译时产生的每一第一告警信息的特征;确定第二源代码被编译时产生的每一第二告警信息的特征,所述第二源代码是所述第一源代码被修改后的源代码;针对每一第二告警信息的特征,检查所述特征集合中是否存在该特征,如果否,则确定该特征为目标特征;输出各目标特征对应的第二告警信息。根据本专利技术的一个实施例,确定第二源代码被编译时产生的每一第二告警信息的特征,包括:针对每一第二告警信息,从该第二告警信息中提取被告警的文件名、被告警的代码信息及告警原因信息,并将提取的文件名、代码信息及告警原因信息作为该第二告警信息的特征。根据本专利技术的一个实施例,从该第二告警信息中提取代码信息,包括:检查该第二告警信息中的告警原因信息是否表示重定义标识符;如果是,则从该第二告警信息中提取出标识符,并将提取的标识符作为代码信息;如果否,则从该第二告警信息中提取出代码语句,并将提取的代码语句作为代码信息。根据本专利技术的一个实施例,所述特征包含:被告警的文件名、被告警的代码信息及告警原因信息,所述代码信息包含标识符、或代码语句;检查所述特征集合中是否存在该特征,包括:检查特征集合中是否存在包含该特征中的文件名的第一特征;如果是,则依据该特征包含的代码信息及告警原因信息确定该特征集合中是否存在该特征;如果否,则确定该特征集合中不存在该特征。根据本专利技术的一个实施例,依据该特征包含的代码信息及告警原因信息确定该特征集合中是否存在该特征,包括:检查所有第一特征中是否存在包含该特征中的代码信息的至少一个目标第一特征;若是,则在任一个目标第一特征中的告警原因信息与该特征中的告警原因信息相同时,确定该特征集合中存在该特征;在所有目标第一特征中的告警原因信息与该特征中的告警原因信息均不同时,确定该特征集合中不存在该特征;若否,则确定该特征集合中不存在该特征。本专利技术第二方面提供一种编译告警处理装置,该装置包括:特征集合获取模块,用于获取特征集合,所述特征集合包含第一源代码被编译时产生的每一第一告警信息的特征;特征确定模块,用于确定第二源代码被编译时产生的每一第二告警信息的特征,所述第二源代码是所述第一源代码被修改后的源代码;目标特征确定模块,用于针对每一第二告警信息的特征,检查所述特征集合中是否存在该特征,如果否,则确定该特征为目标特征;告警信息输出模块,用于输出各目标特征对应的第二告警信息。根据本专利技术的一个实施例,所述特征至少包含:被告警的代码信息;所述特征确定模块确定第二源代码被编译时产生的每一第二告警信息的特征时,具体用于:针对每一第二告警信息,从该第二告警信息中提取被告警的文件名、被告警的代码信息及告警原因信息,并将提取的文件名、代码信息及告警原因信息作为该第二告警信息的特征。根据本专利技术的一个实施例,所述特征确定模块从该第二告警信息中提取代码信息时,具体用于:检查该第二告警信息中的告警原因信息是否表示重定义标识符;如果是,则从该第二告警信息中提取出标识符,并将提取的标识符作为代码信息;如果否,则从该第二告警信息中提取出代码语句,并将提取的代码语句作为代码信息。根据本专利技术的一个实施例,所述特征包含:被告警的文件名、被告警的代码信息及告警原因信息,所述代码信息包含标识符、或代码语句;所述目标特征确定模块检查所述特征集合中是否存在该特征时,具体用于:检查特征集合中是否存在包含该特征中的文件名的第一特征;如果是,则依据该特征包含的代码信息及告警原因信息确定该特征集合中是否存在该特征;如果否,则确定该特征集合中不存在该特征。根据本专利技术的一个实施例,所述目标特征确定模块依据该特征包含的代码信息及告警原因信息确定该特征集合中是否存在该特征时,具体用于:检查所有第一特征中是否存在包含该特征中的代码信息的至少一个目标第一特征;若是,则在任一个目标第一特征中的告警原因信息与该特征中的告警原因信息相同时,确定该特征集合中存在该特征;在所有目标第一特征中的告警原因信息与该特征中的告警原因信息均不同时,确定该特征集合中不存在该特征;若否,则确定该特征集合中不存在该特征。本专利技术实施例具有以下有益效果:本专利技术实施例中,在对源代码修改之后,获取修改前的源代码如第一源代码被编译时产生的所有第一告警信息的特征构成的特征集合,通过将修改后的源代码如第二源代码被编译时产生的第二告警信息的特征与特征集合进行比对,找出本次修改引入的新告警信息,无需手动找出这些新告警信息,缩短了确定新告警信息所需的耗时,减少开发人员的工作量,也可避免人工检查告警信息带来的不准确性。附图说明图1是本专利技术一实施例的编译告警处理方法的流程示意图;图2是本专利技术一实施例的编译告警处理装置的结构框图;图3是本专利技术一实施例的电子设备的结构框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。在本专利技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在本文档来自技高网...

【技术保护点】
1.一种编译告警处理方法,其特征在于,该方法包括:/n获取特征集合,所述特征集合包含第一源代码被编译时产生的每一第一告警信息的特征;/n确定第二源代码被编译时产生的每一第二告警信息的特征,所述第二源代码是所述第一源代码被修改后的源代码;/n针对每一第二告警信息的特征,检查所述特征集合中是否存在该特征,如果否,则确定该特征为目标特征;/n输出各目标特征对应的第二告警信息。/n

【技术特征摘要】
1.一种编译告警处理方法,其特征在于,该方法包括:
获取特征集合,所述特征集合包含第一源代码被编译时产生的每一第一告警信息的特征;
确定第二源代码被编译时产生的每一第二告警信息的特征,所述第二源代码是所述第一源代码被修改后的源代码;
针对每一第二告警信息的特征,检查所述特征集合中是否存在该特征,如果否,则确定该特征为目标特征;
输出各目标特征对应的第二告警信息。


2.如权利要求1所述的编译告警处理方法,其特征在于,确定第二源代码被编译时产生的每一第二告警信息的特征,包括:
针对每一第二告警信息,从该第二告警信息中提取被告警的文件名、被告警的代码信息及告警原因信息,并将提取的文件名、代码信息及告警原因信息作为该第二告警信息的特征。


3.如权利要求2所述的编译告警处理方法,其特征在于,从该第二告警信息中提取代码信息,包括:
检查该第二告警信息中的告警原因信息是否表示重定义标识符;
如果是,则从该第二告警信息中提取出标识符,并将提取的标识符作为代码信息;
如果否,则从该第二告警信息中提取出代码语句,并将提取的代码语句作为代码信息。


4.如权利要求1所述的编译告警处理方法,其特征在于,
所述特征包含:被告警的文件名、被告警的代码信息及告警原因信息,所述代码信息包含标识符、或代码语句;
检查所述特征集合中是否存在该特征,包括:
检查特征集合中是否存在包含该特征中的文件名的第一特征;
如果是,则依据该特征包含的代码信息及告警原因信息确定该特征集合中是否存在该特征;
如果否,则确定该特征集合中不存在该特征。


5.如权利要求4所述的编译告警处理方法,其特征在于,依据该特征包含的代码信息及告警原因信息确定该特征集合中是否存在该特征,包括:
检查所有第一特征中是否存在包含该特征中的代码信息的至少一个目标第一特征;
若是,则在任一个目标第一特征中的告警原因信息与该特征中的告警原因信息相同时,确定该特征集合中存在该特征;在所有目标第一特征中的告警原因信息与该特征中的告警原因信息均不同时,确定该特征集合中不存在该特征;
若否,则确定该特征集合中不存在该特征。


6.一种编译告警处理装置,其特征在于,该装置包括:
特征集合获取模块,用于获取特征集合,所述特征集...

【专利技术属性】
技术研发人员:魏方征胡飞林嘉琳
申请(专利权)人:杭州迪普科技股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1