[发明专利]检测方法和装置有效
申请号: | 201710151960.1 | 申请日: | 2017-03-15 |
公开(公告)号: | CN108628728B | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 赵俊民;王再尚 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 兰春娥;毛威 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 检测 方法 装置 | ||
本申请实施例提供了一种检测方法,该方法包括:获取第一代码源文件,所述第一代码源文件为第二代码源文件的更新文件;确定所述第一代码源文件的更新程序段的第一特征集合;确定所述第一特征集合中的每个特征和所述第二特征集合中与所述每个特征对应的特征是否相同,其中,所述第二特征集合为所述第二代码源文件的特征集合;当所述第一特征集合中的第一特征和所述第二特征集合中与所述第一特征对应的第二特征不同时,确定所述第一代码源文件对应的二进制文件存在兼容性问题,可以检测出二进制文件的兼容性问题。
技术领域
本申请实施例涉及计算机领域,并且更具体地,涉及计算机领域中的一种检测方法和装置。
背景技术
Linux/Windows系统中会将一些通用功能封装成为函数或者class,打包成为一个lib,供多个调用者使用。lib库做了修改而不能影响老程序的正常运行。如果lib库中代码做了一些修改,但是调用方并不重新编译,在某些情况下,会出现二进制兼容性问题例如,功能异常,甚至系统奔溃等,因此,检测二进制兼容性是亟待解决的问题。
发明内容
本申请提供一种检测方法和装置,可以检测出二进制兼容性问题。
第一方面,提供了一种检测方法,包括:获取第一代码源文件,所述第一代码源文件为第二代码源文件的更新文件;确定所述第一代码源文件的更新程序段的第一特征集合;确定所述第一特征集合中的每个特征和所述第二特征集合中与所述每个特征对应的特征是否相同,其中,所述第二特征集合为所述第二代码源文件的特征集合;当所述第一特征集合中的第一特征和所述第二特征集合中与所述第一特征对应的第二特征不同时,确定所述第一代码源文件对应的二进制文件存在兼容性问题。
在本申请实施例中,第一代码源文件为第二代码源文件的更新文件,当第一代码源文件中的更新程序段的第一特征和第二代码源文件中与第一特征对应的第二特征不同时,可以认为第一代码源文件对应的二进制文件存在兼容性问题,例如,当检测出第一代码源文件对应的二进制文件存在兼容性问题时,编译器可以重新编译第一代码源文件解决第一代码源文件对应的二进制文件的兼容性问题。
应理解,第一特征集合包括至少一个特征,第二特征集合也包括至少一个特征。
在某些实现方式中,当所述第一特征集合中每个特征和所述第二特征集合中与所述每个特征对应的特征都相同时,确定所述第一代码源文件对应的二进制文件不存在兼容性问题。
换句话说,当只要存在第二特征集合中的特征与第一特征集合的特征对应的特征不同时,就认为第一代码源文件存在兼容性问题,只有第一特征集合中每个特征和第二特征集合中与所述每个特征对应的特征都相同时,则认为当前的第一代码源文件不存在兼容性问题。
在某些实现方式中,若所述第一代码源文件和所述第二代码源文件包括C++类,所述第一特征集合和所述第二特征集合中与所述每个特征对应的特征包括以下至少一项:虚函数在所述C++类中的定义顺序、虚函数的名称、虚函数的返回值、虚函数的参数、非静态成员变量在所述C++类中的定义顺序、非静态成员变量的类型、非静态成员变量的名称、非虚拟公有成员函数的名称、非虚拟公有成员函数的返回值、非虚拟公有成员函数的参数、至少一个基类、至少一个基类中每个基类在所述C++类中的顺序和至少一个基类中每个基类的类型。
在本申请实施例中,当第一代码源文件和第二代码源文件包括C++类时,可以比较第一代码源文件和第二代码源文件中的这些特征,当存在不同的特征时,可以认为第一代码源文件对应的二进制文件存在兼容性问题,当所有的特征的都相同时,可以认为第一代码源文件对应的二进制文件不存在兼容性问题。
在某些实现方式中,当第一代码源文件在第二代码源文件的基础上增加了新的C++类时,可以将该C++类记录下来,以备以后二进制的兼容性检测;或者当第一代码源文件在第二代码源文件的基础上增加了新的函数时,可以将该C函数记录下来,以备以后的二进制兼容性检测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710151960.1/2.html,转载请声明来源钻瓜专利网。