利索能及
我要发布
收藏
专利号: 2020116061250
申请人: 东软集团股份有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-03-28
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种识别代码变更影响范围的方法,其特征在于,所述方法包括:调用编译工程文件对变更前源代码文件进行编译,生成第一编译成果文件,所述第一编译成果文件包括所述变更前源代码文件中各个函数占用的内存地址范围以及空闲内存地址范围;

获取变更后源代码文件,确定所述变更后源代码文件中存在代码变更的目标函数,并从所述第一编译成果文件中获取在对所述变更前源代码文件进行编译时所述目标函数占用的第一内存地址范围;

通过修改所述变更后源代码文件变更所述目标函数在编译时占用的内存地址范围,并在所述变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件,以使在对所述目标源代码文件进行编译时所述目标函数占用所述空闲内存地址范围内的第二内存地址范围,所述空函数占用所述第一内存地址范围;

调用所述编译工程文件对所述目标源代码文件编译,生成第二编译成果文件;

比较所述第一编译成果文件以及所述第二编译成果文件,确定代码变更影响范围。

2.根据权利要求1所述的方法,其特征在于,在确定代码变更影响范围之后,所述方法还包括:将所述目标源代码文件还原为所述变更后源代码文件;

调用所述编译工程文件对所述变更后源代码文件进行编译。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

在调用所述编译工程文件对所述变更后源代码文件进行编译时生成的第三编译成果文件中,确定首个目标函数占用的内存地址范围的起始地址是否为首个所述第一内存地址范围的起始地址;

如果是,确定所述变更后源代码文件还原正常。

4.根据权利要求2所述的方法,其特征在于,所述通过修改所述变更后源代码文件变更所述目标函数在编译时占用的内存地址范围,并在所述变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件,包括:在所述变更后源代码文件中添加对所述目标函数的扇区偏移指令,所述对所述目标函数的扇区偏移指令用于指示所述目标函数在编译时占用所述空闲内存地址范围内的第二内存地址范围;

根据所述第一内存地址范围确定空函数的大小,在所述变更后源代码文件的所述目标函数之前或者之后添加所述空函数,生成目标源代码文件。

5.根据权利要求4所述的方法,其特征在于,所述将所述目标源代码文件还原为所述变更后源代码文件,包括:删除所述目标源代码文件中的所述目标函数的扇区偏移指令以及所述空函数,还原所述变更后源代码文件。

6.根据权利要求1所述的方法,其特征在于,所述比较所述第一编译成果文件以及所述第二编译成果文件,确定代码变更影响范围,包括:比较所述第一编译成果文件以及所述第二编译成果文件,将所述第一编译成果文件与所述第二编译成果文件中存在差异的部分确定为代码变更影响范围。

7.根据权利要求1或6所述的方法,其特征在于,所述方法还包括:对所述代码变更影响范围进行突出显示。

8.一种识别代码变更影响范围的装置,其特征在于,所述装置包括:第一编译单元,用于调用编译工程文件对变更前源代码文件进行编译,生成第一编译成果文件,所述第一编译成果文件包括所述变更前源代码文件中各个函数占用的内存地址范围以及空闲内存地址范围;

第一确定单元,用于获取变更后源代码文件,确定所述变更后源代码文件中存在代码变更的目标函数,并从所述第一编译成果文件中获取在对所述变更前源代码文件进行编译时所述目标函数占用的第一内存地址范围;

修改单元,用于通过修改所述变更后源代码文件变更所述目标函数在编译时占用的内存地址范围,并在所述变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件,以使在对所述目标源代码文件进行编译时所述目标函数占用所述空闲内存地址范围内的第二内存地址范围,所述空函数占用所述第一内存地址范围;

第二编译单元,用于调用所述编译工程文件对所述目标源代码文件编译,生成第二编译成果文件;

比较单元,用于比较所述第一编译成果文件以及所述第二编译成果文件,确定代码变更影响范围。

9.一种识别代码变更影响范围的设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1‑7任一项所述的识别代码变更影响范围的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1‑7任一项所述的识别代码变更影响范围的方法。