一种代码分析处理方法、装置和可读存储介质制造方法及图纸

技术编号:36528343 阅读:16 留言:0更新日期:2023-02-01 16:09
本申请实施例提供了一种代码分析处理方法、装置和可读存储介质。其中的方法包括:根据基准版本代码,在更新版本代码中确定变化函数,变化函数指更新版本代码中相对于基准版本代码发生变更的同名函数;对于更新版本代码中的目标函数,生成每个目标函数的调用树;调用树中包括调用函数的名称和被调用函数的名称;目标函数为变化函数或者应用程序接口;根据目标函数的调用树,在更新版本代码中确定目标接口,目标接口为应用程序接口且目标接口为变化函数的调用函数;将目标接口的调用信息保存到第一文件中,目标接口的调用信息包括目标接口的信息和目标接口调用的变化函数的信息。本发明专利技术实施例可以提高内核API兼容性审查的效率。明实施例可以提高内核API兼容性审查的效率。明实施例可以提高内核API兼容性审查的效率。

【技术实现步骤摘要】
一种代码分析处理方法、装置和可读存储介质


[0001]本申请涉及计算机
,尤其涉及一种代码分析处理方法、装置和可读存储介质。

技术介绍

[0002]在Linux系统中,将程序的运行空间分为内核空间与用户空间(内核态和用户态),在逻辑上它们之间是相互隔离的,因此用户程序不能访问内核数据,也无法使用内核函数。
[0003]Linux内核API(Application Programming Interface,应用程序接口),是由Linux内核导出的应用编程接口,是提供给其它模块使用的函数接口,用于访问内核数据和使用内核函数,方便开发人员进行内核开发工作。
[0004]不同版本的Linux内核通常会涉及大量的内核函数的修改,可能导致有的内核API无法在新版本的Linux内核上正常运行,也即,这些内核API出现兼容性问题。因此,每一次Linux内核版本的变更,都需要大量开发人员对整个Linux操作系统中的所有内核API进行兼容性审查,以对新版本进行优化。然而,对整个Linux操作系统中的所有内核API进行兼容性审查,需要人工分析内核代码,需要耗费大量的人力且效率较低。

技术实现思路

[0005]本申请实施例提供一种代码分析处理方法、装置和可读存储介质,可以提高内核API兼容性审查的效率。
[0006]为了解决上述问题,本申请实施例公开了一种代码分析处理方法,应用于计算机设备,所述方法包括:
[0007]根据基准版本代码,在更新版本代码中确定变化函数,所述变化函数指所述更新版本代码中相对于所述基准版本代码发生变更的同名函数;
[0008]对于所述更新版本代码中的目标函数,生成每个目标函数的调用树;所述调用树中包括调用函数的名称和被调用函数的名称;所述目标函数为变化函数或者应用程序接口;
[0009]根据所述目标函数的调用树,在所述更新版本代码中确定目标接口,所述目标接口为应用程序接口且所述目标接口为所述变化函数的调用函数;
[0010]将所述目标接口的调用信息保存到第一文件中,所述目标接口的调用信息包括所述目标接口的信息和所述目标接口调用的变化函数的信息。
[0011]另一方面,本申请实施例公开了一种代码分析处理装置,应用于计算机设备,所述装置包括:
[0012]变化函数确定模块,用于根据基准版本代码,在更新版本代码中确定变化函数,所述变化函数指所述更新版本代码中相对于所述基准版本代码发生变更的同名函数;
[0013]调用树生成模块,用于对于所述更新版本代码中的目标函数,生成每个目标函数的调用树;所述调用树中包括调用函数的名称和被调用函数的名称;所述目标函数为变化
函数或者应用程序接口;
[0014]目标接口确定模块,用于根据所述目标函数的调用树,在所述更新版本代码中确定目标接口,所述目标接口为应用程序接口且所述目标接口为所述变化函数的调用函数;
[0015]调用信息保存模块,用于将所述目标接口的调用信息保存到第一文件中,所述目标接口的调用信息包括所述目标接口的信息和所述目标接口调用的变化函数的信息。
[0016]再一方面,本申请实施例公开了一种用于代码分析处理装置,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如前述任一所述的代码分析处理方法的指令。
[0017]又一方面,本申请实施例公开了一种可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如前述任一所述的代码分析处理方法。
[0018]本申请实施例包括以下优点:
[0019]本申请实施例提供的代码分析处理方法,在Linux内核的版本发生更新的情况下,通过对基准版本代码和更新版本代码进行分析,在更新版本代码中找到相对于基准版本代码中的变化函数;根据目标函数的调用树,在更新版本代码中找到调用这些变化函数的目标接口,并将所述目标接口的调用信息保存到第一文件中。所述目标接口的调用信息包括所述目标接口的信息和所述目标接口调用的变化函数的信息。由此,根据所述第一文件可以直观得知更新版本代码中包含哪些目标接口(调用了变化函数的内核API),以及这些目标接口调用了哪些发生变更的内核函数,从而可以辅助开发人员对更新版本代码中的内核API进行兼容性审查,快速查找到可能存在兼容性问题的内核API,进而通过修改或优化的方式解决内核API的兼容性问题。此外,所述第一文件中记录有所有调用了变化函数的内核API,而内核API的兼容性问题通常是因为调用了变化函数所导致,因此只需对第一文件中的目标接口进行兼容性审查即可,而不用对整个更新版本代码中的所有内核API进行兼容性审查,可以减少人工成本和审查时间。再者,本申请实施例不依赖于开发人员的技术水平,可以提高兼容性审查的效率和准确性。
附图说明
[0020]为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0021]图1是本申请的一种代码分析处理方法实施例的步骤流程图;
[0022]图2是本申请在可视化界面中展示第一文件中的内容的一个示意图;
[0023]图3是本申请的一种代码分析处理装置实施例的结构框图;
[0024]图4是本申请的一种用于代码分析处理装置800的框图;
[0025]图5是本申请的一些实施例中服务器的结构示意图。
具体实施方式
[0026]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0027]本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
[0028]参照图1,示出了本申请的一种代码分析处理方法实施例的步骤流程图,所述方法可应用于计算机设备,所述方法可以包括如下步骤:
[0029]步骤101、根据基准版本代码,在更新版本代码本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码分析处理方法,其特征在于,应用于计算机设备,所述方法包括:根据基准版本代码,在更新版本代码中确定变化函数,所述变化函数指所述更新版本代码中相对于所述基准版本代码发生变更的同名函数;对于所述更新版本代码中的目标函数,生成每个目标函数的调用树;所述调用树中包括调用函数的名称和被调用函数的名称;所述目标函数为变化函数或者应用程序接口;根据所述目标函数的调用树,在所述更新版本代码中确定目标接口,所述目标接口为应用程序接口且所述目标接口为所述变化函数的调用函数;将所述目标接口的调用信息保存到第一文件中,所述目标接口的调用信息包括所述目标接口的信息和所述目标接口调用的变化函数的信息。2.根据权利要求1所述的方法,其特征在于,若所述目标函数为变化函数,则所述目标函数为所述目标函数的调用树中的被调用函数;所述根据所述目标函数的调用树,在所述更新版本代码中确定目标接口,包括:获取所述更新版本代码中所有应用程序接口的名称;将所述所有应用程序接口的名称分别与所述每个目标函数的调用树中各调用函数的名称进行比对,确定相匹配的调用函数为目标接口。3.根据权利要求1所述的方法,其特征在于,若所述目标函数为应用程序接口,则所述目标函数为所述目标函数的调用树中的调用函数;所述根据所述目标函数的调用树,在所述更新版本代码中确定目标接口,包括:获取所述更新版本代码中所有变化函数的名称;将所述所有变化函数的名称分别与所述每个目标函数的调用树中各被调用函数的名称进行比对,确定相匹配的被调用函数所在调用树对应的目标函数为目标接口。4.根据权利要求1所述的方法,其特征在于,所述根据基准版本代码,在更新版本代码中确定变化函数,包括:对所述基准版本代码和所述更新版本代码执行差异比较命令,生成差异文件,所述差异文件包含所述更新版本代码中相对于所述基准版本代码中的差异内容;在所述差异文件的差异内容中确定变化函数。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:对所述更新版本代码进行编译,得到所述更新版本代码的符号表;所述对于所述...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:中科方德软件有限公司
类型:发明
国别省市:

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

1