一种识别代码变更影响范围的方法、装置及设备制造方法及图纸

技术编号:28211580 阅读:50 留言:0更新日期:2021-04-24 14:48
本申请实施例公开了一种识别代码变更影响范围的方法、装置及设备,调用编辑工程文件编译变更前源代码文件生成第一编译成果文件。获取变更后源代码文件确定存在代码变更的目标函数。从第一编辑成果文件中获取目标函数所占用的第一内存地址范围。修改变更后源代码文件变更目标函数在编译时所占用的内存地址范围,在变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件。最后,调用编译工程文件编译目标源代码文件生成第二编译成果文件。通过比较第一编译成果文件和第二编译成果文件可以准确地确定目标函数变更后的代码变更影响范围,便于后续对变更代码影响范围进行确认,提高软件开发的效率并且确保开发的软件的质量。软件的质量。软件的质量。

【技术实现步骤摘要】
一种识别代码变更影响范围的方法、装置及设备


[0001]本申请涉及计算机
,具体涉及一种识别代码变更影响范围的方法、装置及设备。

技术介绍

[0002]在软件开发的过程中,开发人员需要根据软件开发的需要对软件代码进行修改。部分代码在变更后可能会对其他的代码部分造成影响,开发人员需要对代码变更影响范围进行测试,以确保代码的正确性。
[0003]目前,不能较为准确地确定代码变更影响范围,开发人员需要对修改后的软件代码进行代码整体的测试确认。这会导致测试软件代码的时间较长,软件开发的效率较低。若开发人员基于不够准确的代码变更影响范围进行测试核查,还会导致软件代码出现问题。因此,如何确定较为准确的代码变更影响范围是亟待解决的问题。

技术实现思路

[0004]有鉴于此,本申请实施例提供一种识别代码变更影响范围的方法、装置及设备,能够准确地确定代码变更影响范围,从而明确进行代码测试的范围,提高软件开发的效率以及代码的质量。
[0005]为解决上述问题,本申请实施例提供的技术方案如下:
[0006]一种识别代码变更影响范围的方法,所述方法包括:
[0007]调用编译工程文件对变更前源代码文件进行编译,生成第一编译成果文件,所述第一编译成果文件包括所述变更前源代码文件中各个函数占用的内存地址范围以及空闲内存地址范围;
[0008]获取变更后源代码文件,确定所述变更后源代码文件中存在代码变更的目标函数,并从所述第一编译成果文件中获取在对所述变更前源代码文件进行编译时所述目标函数占用的第一内存地址范围;
[0009]通过修改所述变更后源代码文件变更所述目标函数在编译时占用的内存地址范围,并在所述变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件,以使在对所述目标源代码文件进行编译时所述目标函数占用所述空闲内存地址范围内的第二内存地址范围,所述空函数占用所述第一内存地址范围;
[0010]调用所述编译工程文件对所述目标源代码文件编译,生成第二编译成果文件;
[0011]比较所述第一编译成果文件以及所述第二编译成果文件,确定代码变更影响范围。
[0012]在一种可能的实现方式中,在确定代码变更影响范围之后,所述方法还包括:
[0013]将所述目标源代码文件还原为所述变更后源代码文件;
[0014]调用所述编译工程文件对所述变更后源代码文件进行编译。
[0015]在一种可能的实现方式中,所述方法还包括:
[0016]在调用所述编译工程文件对所述变更后源代码文件进行编译时生成的第三编译成果文件中,确定首个目标函数占用的内存地址范围的起始地址是否为首个所述第一内存地址范围的起始地址;
[0017]如果是,确定所述变更后源代码文件还原正常。
[0018]在一种可能的实现方式中,所述通过修改所述变更后源代码文件变更所述目标函数在编译时占用的内存地址范围,并在所述变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件,包括:
[0019]在所述变更后源代码文件中添加对所述目标函数的扇区偏移指令,所述对所述目标函数的扇区偏移指令用于指示所述目标函数在编译时占用所述空闲内存地址范围内的第二内存地址范围;
[0020]根据所述第一内存地址范围确定空函数的大小,在所述变更后源代码文件的所述目标函数之前或者之后添加所述空函数,生成目标源代码文件。
[0021]在一种可能的实现方式中,所述将所述目标源代码文件还原为所述变更后源代码文件,包括:
[0022]删除所述目标源代码文件中的所述目标函数的扇区偏移指令以及所述空函数,还原所述变更后源代码文件。
[0023]在一种可能的实现方式中,所述比较所述第一编译成果文件以及所述第二编译成果文件,确定代码变更影响范围,包括:
[0024]比较所述第一编译成果文件以及所述第二编译成果文件,将所述第一编译成果文件与所述第二编译成果文件中存在差异的部分确定为代码变更影响范围。
[0025]在一种可能的实现方式中,所述方法还包括:
[0026]对所述代码变更影响范围进行突出显示。
[0027]一种识别代码变更影响范围的装置,所述装置包括:
[0028]第一编译单元,用于调用编译工程文件对变更前源代码文件进行编译,生成第一编译成果文件,所述第一编译成果文件包括所述变更前源代码文件中各个函数占用的内存地址范围以及空闲内存地址范围;
[0029]第一确定单元,用于获取变更后源代码文件,确定所述变更后源代码文件中存在代码变更的目标函数,并从所述第一编译成果文件中获取在对所述变更前源代码文件进行编译时所述目标函数占用的第一内存地址范围;
[0030]修改单元,用于通过修改所述变更后源代码文件变更所述目标函数在编译时占用的内存地址范围,并在所述变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件,以使在对所述目标源代码文件进行编译时所述目标函数占用所述空闲内存地址范围内的第二内存地址范围,所述空函数占用所述第一内存地址范围;
[0031]第二编译单元,用于调用所述编译工程文件对所述目标源代码文件编译,生成第二编译成果文件;
[0032]比较单元,用于比较所述第一编译成果文件以及所述第二编译成果文件,确定代码变更影响范围。
[0033]一种识别代码变更影响范围的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述
的识别代码变更影响范围的方法。
[0034]一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述的识别代码变更影响范围的方法。
[0035]由此可见,本申请实施例具有如下有益效果:
[0036]本申请实施例提供的一种识别代码变更影响范围的方法、装置及设备,先调用编辑工程文件对变更前源代码文件进行编译,生成第一编译成果文件,通过第一编译成果文件可以确定变更前源代码文件中各个函数占用的内存地址范围以及空闲内存地址范围。再获取变更后源代码文件,确定变更后源代码文件中存在代码变更的目标函数,从第一编辑成果文件中获取目标函数所占用的第一内存地址范围。第一内存地址范围是目标函数在代码变更之前所占用的内存地址范围。修改变更后源代码文件变更目标函数在编译时所占用的内存地址范围,并且在变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件。如此可以实现利用空函数占用目标函数在代码变更之前占用的第一内存地址范围,确保在变更后源代码文件中目标函数之后的函数所占用的内存地址范围不受目标函数变更的影响。目标源代码文件在进行编译时目标函数占用空闲内存地址范围内的第二内存地址范围。调整占用内存地址范围后的目标函数占用空闲内存地址范围,不会影响到后续代码中函数在编译时所占用内存地址范围,降低了对代码影响的范围。最后,调用编译工程文件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种识别代码变更影响范围的方法,其特征在于,所述方法包括:调用编译工程文件对变更前源代码文件进行编译,生成第一编译成果文件,所述第一编译成果文件包括所述变更前源代码文件中各个函数占用的内存地址范围以及空闲内存地址范围;获取变更后源代码文件,确定所述变更后源代码文件中存在代码变更的目标函数,并从所述第一编译成果文件中获取在对所述变更前源代码文件进行编译时所述目标函数占用的第一内存地址范围;通过修改所述变更后源代码文件变更所述目标函数在编译时占用的内存地址范围,并在所述变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件,以使在对所述目标源代码文件进行编译时所述目标函数占用所述空闲内存地址范围内的第二内存地址范围,所述空函数占用所述第一内存地址范围;调用所述编译工程文件对所述目标源代码文件编译,生成第二编译成果文件;比较所述第一编译成果文件以及所述第二编译成果文件,确定代码变更影响范围。2.根据权利要求1所述的方法,其特征在于,在确定代码变更影响范围之后,所述方法还包括:将所述目标源代码文件还原为所述变更后源代码文件;调用所述编译工程文件对所述变更后源代码文件进行编译。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在调用所述编译工程文件对所述变更后源代码文件进行编译时生成的第三编译成果文件中,确定首个目标函数占用的内存地址范围的起始地址是否为首个所述第一内存地址范围的起始地址;如果是,确定所述变更后源代码文件还原正常。4.根据权利要求2所述的方法,其特征在于,所述通过修改所述变更后源代码文件变更所述目标函数在编译时占用的内存地址范围,并在所述变更后源代码文件的目标函数对应位置添加空函数,生成目标源代码文件,包括:在所述变更后源代码文件中添加对所述目标函数的扇区偏移指令,所述对所述目标函数的扇区偏移指令用于指示所述目标函数在编译时占用所述空闲内存地址范围内的第二内存地址范围;根据所述第一内存地址范围确定空函数的大小,在所述变更后源代码文件的所述目标函数之前或者之后添加所述空函数,生成目标源代码文件。5.根据权利要求4所述的方法,其特征在于,所述将所述目标源代码文件还原为所述变更后源代码...

【专利技术属性】
技术研发人员:李志鹏
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:

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

1