自动化符号冲突检测方法、装置及存储介质制造方法及图纸

技术编号:34897534 阅读:28 留言:0更新日期:2022-09-10 13:57
本发明专利技术涉及数据处理技术领域,具体提供一种自动化符号冲突检测方法、装置及存储介质,旨在解决现有的检测方法检测效率较低的技术问题。为此目的,本发明专利技术的自动化符号冲突检测方法包括下述步骤:首先获取至少一个库文件,并从库文件中提取静态库,接着将静态库拆分为多个子库,获取每个子库的符号表,其次将相同类型子库中的符号表写入同一文件,检测同一文件中是否存在同名符号,得到检测结果。如此,提高了检测效率。高了检测效率。高了检测效率。

【技术实现步骤摘要】
自动化符号冲突检测方法、装置及存储介质


[0001]本专利技术涉及数据处理
,具体提供一种自动化符号冲突检测方法、装置及存储介质。

技术介绍

[0002]近年来,现在随着软硬件的升级,出现了各种场景和功能的App,伴随着也出现了很多开源或闭源的三方库,在App开发过程中会集成使用多个开源或闭源的三方库,这些库中可能存在同名但不同功能的函数或方法名称,在编译时IDE可能只会链接到其中某一个函数,就会导致App在运行过程中产生不可预期的行为,且难以调试。
[0003]现有的对于同名符号的检测方法,大部分是通过两个符号表之间的函数或者方法名称的对比,从而得到检测结果,这种检测方法需要将所有符号表两两对比,从而得到所有的冲突,耗费的时间很长。另外,如果在检测过程中发现部分冲突报错后就会停止,不能一次检测出全部的冲突的问题,需要多次修改检测,检测效率较低。
[0004]相应地,本领域需要一种新的动化符号冲突检测方案来解决上述问题。

技术实现思路

[0005]为了克服上述缺陷,提出了本专利技术,以提供解决或至少部分地解决现有的检测方法检测效率较低的技术问题。本专利技术提供了一种自动化符号冲突检测方法、装置及存储介质。
[0006]在第一方面,本专利技术提供一种自动化符号冲突检测方法,包括下述步骤:
[0007]S1.获取至少一个库文件,并从所述库文件中提取静态库;
[0008]S2.将所述静态库拆分为多个子库,所述子库为单架构库;
[0009]S3.获取每个所述子库的符号表;
[0010]S4.将相同类型子库中的所述符号表写入同一文件;
[0011]S5.检测所述同一文件中是否存在同名符号,得到检测结果;
[0012]S6.循环S3

S5,直至所有类型的子库均被检测。
[0013]在一个实施方式中,获取至少一个库文件包括:获取所述库文件所在的根目录路径;基于所述库文件所在的根目录路径扫描得到所述至少一个库文件。
[0014]在一个实施方式中,将所述静态库拆分为多个子库包括:基于CPU架构类型将所述静态库拆分为多个子库;和/或
[0015]将相同类型子库中的所述符号表写入同一文件包括:将相同CPU架构类型对应子库中的所述符号表写入同一文件。
[0016]在一个实施方式中,所述同名符号包括同名函数和相同方法名称中的至少一个;检测所述同一文件中是否存在同名符号包括:检测所述同一文件中是否存在同名函数和相同方法名称中的至少一个。
[0017]在一个实施方式中,检测所述同一文件中是否存在同名符号进一步包括:利用查
重方法检测所述同一文件中是否存在同名函数和相同方法名称中的至少一个。
[0018]在一个实施方式中,还包括:将所述至少一个库文件保存至同一目录下。
[0019]在一个实施方式中,还包括:将所述检测结果发送至调用方,以使所述调用方基于所述检测结果修改目标文件。
[0020]在第二方面,本专利技术提供一种自动化符号冲突检测装置,包括:
[0021]提取模块,被配置为获取至少一个库文件,并从所述库文件中提取静态库;
[0022]拆分模块,被配置为将所述静态库拆分为多个子库,所述子库为单架构库;
[0023]获取模块,被配置为获取每个所述子库的符号表;
[0024]存储模块,被配置为将相同类型子库中的所述符号表写入同一文件;
[0025]检测模块,被配置为检测所述同一文件中是否存在同名符号,得到检测结果。
[0026]在第三方面,提供一种电子设备,该电子设备包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行前述任一项所述的自动化符号冲突检测方法。
[0027]在第四方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行前述任一项所述的自动化符号冲突检测方法。
[0028]本专利技术上述一个或多个技术方案,至少具有如下一种或多种有益效果:
[0029]本专利技术提供一种自动化符号冲突检测方法,首先获取至少一个库文件,并从库文件中提取静态库,接着将静态库拆分为多个子库,获取每个子库的符号表,其次,将相同类型子库中的符号表写入同一文件,并检测同一文件中是否存在同名符号,以得到检测结果,需要重复前述检测步骤,直至所有类型的子库均被检测。该检测方法独立于工程项目之外,不会生成可执行文件,只需要获取子库中的符号表,并将同类型下的符号表存储在同一文件中进行同名符号的检测,不存在编译、链接过程,节省了大量时间,同时一次性可以检测出全部的同名符号,不需要多次操作,提高了检测效率。
附图说明
[0030]参照附图,本专利技术的公开内容将变得更易理解。本领域技术人员容易理解的是:这些附图仅仅用于说明的目的,而并非意在对本专利技术的保护范围组成限制。此外,图中类似的数字用以表示类似的部件,其中:
[0031]图1是根据本专利技术的一个实施例的自动化符号冲突检测方法的主要步骤流程示意图;
[0032]图2是根据本专利技术的一个实施例的自动化符号冲突检测方法的完整流程示意图;
[0033]图3是根据本专利技术的一个实施例的自动化符号冲突检测装置的主要结构框图示意图;
[0034]图4是根据本专利技术的一个实施例的电子设备的结构示意图。
[0035]附图标记列表:
[0036]11:提取模块;12:拆分模块;13:获取模块;14:存储模块;15:检测模块。
具体实施方式
[0037]下面参照附图来描述本专利技术的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本专利技术的技术原理,并非旨在限制本专利技术的保护范围。
[0038]在本专利技术的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、图像处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。术语“A和/或B”表示所有可能的A与B的组合,比如只是A、只是B或者A和B。术语“至少一个A或B”或者“A和B中的至少一个”含义与“A和/或B”类似,可以包括只是A、只是B或者A和B。单数形式的术语“一个”、“这个”也可以包含复数形式。
[0039]目前,现有的检测方法,大部分是通过两个符号表之间的函数或者方法名称的对比,从而得到检测结果,这种检测方法需要将所有符号表两两对比,从而得到所有的冲突,耗费的时间很长。另外,如果在检测过程中发现部分冲突报错后就会停止,不能一次检本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自动化符号冲突检测方法,其特征在于,包括下述步骤:S1.获取至少一个库文件,并从所述库文件中提取静态库;S2.将所述静态库拆分为多个子库,所述子库为单架构库;S3.获取每个所述子库的符号表;S4.将相同类型子库中的所述符号表写入同一文件;S5.检测所述同一文件中是否存在同名符号,得到检测结果;S6.循环S3

S5,直至所有类型的子库均被检测。2.根据权利要求1所述的自动化符号冲突检测方法,其特征在于,获取至少一个库文件包括:获取所述库文件所在的根目录路径;基于所述库文件所在的根目录路径扫描得到所述至少一个库文件。3.根据权利要求1所述的自动化符号冲突检测方法,其特征在于,将所述静态库拆分为多个子库包括:基于CPU架构类型将所述静态库拆分为多个子库;和/或将相同类型子库中的所述符号表写入同一文件包括:将相同CPU架构类型对应子库中的所述符号表写入同一文件。4.根据权利要求1所述的自动化符号冲突检测方法,其特征在于,所述同名符号包括同名函数和相同方法名称中的至少一个;检测所述同一文件中是否存在同名符号包括:检测所述同一文件中是否存在同名函数和相同方法名称中的至少一个。5.根据权利要求4所述的自动化符号冲突检测方法,其特征在于,...

【专利技术属性】
技术研发人员:姚驷旭
申请(专利权)人:海尔智家股份有限公司
类型:发明
国别省市:

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

1