System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 在代码更新时检查源代码有效性制造技术_技高网

在代码更新时检查源代码有效性制造技术

技术编号:41698433 阅读:14 留言:0更新日期:2024-06-19 12:32
一种计算机实现的方法包括由处理器接收包括若干源代码改变的计算机程序的更新版本。编译器针对目标计算平台预处理源代码改变。预处理包括识别与由宏封装的一个或多个计算机指令相关联的编译时条件,确定在编译时编译时条件的当前值,以及基于当前值确定对应的目标代码。此外,产生宏的宏信息记录,其包括编译时条件、当前值和计算机指令的标识。此外,链接器预处理源代码改变。该预处理包括确定目标代码不包括在可执行文件中,以及更新宏信息记录以指示宏未包括在可执行文件中。

【技术实现步骤摘要】
【国外来华专利技术】


技术介绍

1、本专利技术一般地涉及计算机技术,具体地,涉及在更新计算机程序产品时检查计算机指令的有效性,并且更具体地,涉及检查包括宏或由宏封装的计算机指令的有效性。

2、将计算机程序从一个平台或源移植到另一个平台或源对于使计算机程序能够在若干平台上使用是重要的。例如,在云计算平台的情况下,诸如开源程序的若干计算机程序可用于诸如容器支持的特定功能。将这样的计算机程序从一个平台(例如,云计算平台、移动计算平台、操作系统等)移植到另一个平台促进了使用这样的计算机程序的软件的不间断使用。

3、用于分析计算机程序和调试计算机指令的现有技术解决方案没有考虑在利用可能不被(一个或多个)特定目标计算平台使用的源代码改变来更新大规模企业级项目时发生的特定技术挑战。虽然存在用于将源代码从一个平台移植到目标计算平台的若干现有解决方案,但是需要改进移植的代码,尤其是过滤专用于目标计算平台的移植的代码。


技术实现思路

1、根据本专利技术的一个或多个实施例,一种计算机实现的方法包括由处理器接收计算机程序的更新版本,该更新版本包括多个源代码改变。该方法还包括由编译器针对目标计算平台预处理源代码改变,其中由编译器预处理源代码改变包括识别与由宏封装的一个或多个计算机指令相关联的编译时条件。由编译器预处理源代码改变还包括在为目标计算平台编译计算机程序的更新版本时确定编译时条件的当前值。由编译器预处理源代码改变还包括基于编译时条件的当前值来确定对应于一个或多个计算机指令的目标代码。由编译器预处理源代码改变还包括存储宏的宏信息记录,宏信息记录包括编译时条件、编译时条件的当前值和一个或多个计算机指令的标识。该方法还包括由链接器针对目标计算平台预处理源代码改变。由链接器预处理源代码改变包括确定对应于一个或多个计算机指令的目标代码不包括在可执行文件中,以及更新宏信息记录以指示宏未包括在可执行文件中。

2、根据本专利技术的一个或多个实施例,一种系统包含存储器装置及与所述存储器装置耦合的一个或多个处理单元。一个或多个处理单元被配置为执行用于针对目标计算平台分析计算机程序的更新版本的方法。该方法包括由处理器接收计算机程序的更新版本,该更新版本包括多个源代码改变。该方法还包括由编译器针对目标计算平台预处理源代码改变,其中由编译器预处理源代码改变包括识别与由宏封装的一个或多个计算机指令相关联的编译时条件。由编译器预处理源代码改变还包括在为目标计算平台编译计算机程序的更新版本时确定编译时条件的当前值。由编译器预处理源代码改变还包括基于编译时条件的当前值来确定对应于一个或多个计算机指令的目标代码。由编译器预处理源代码改变还包括存储宏的宏信息记录,宏信息记录包括编译时条件、编译时条件的当前值和这一个或多个计算机指令的标识。该方法还包括由链接器针对目标计算平台预处理源代码改变。由链接器预处理源代码改变包括确定对应于一个或多个计算机指令的目标代码未包括在可执行文件中,以及更新宏信息记录以指示宏未包括在可执行文件中。

3、根据本专利技术的一个或多个实施例,一种计算机程序产品包括计算机可读存储器,该计算机可读存储器具有存储在其上的计算机可执行指令,当由处理器执行时,该计算机可执行指令使处理器执行用于分析计算机程序的更新版本的方法。该方法包括由处理器接收计算机程序的更新版本,该更新版本包括多个源代码改变。该方法还包括由编译器针对目标计算平台预处理源代码改变,其中由编译器预处理源代码改变包括识别与由宏封装的一个或多个计算机指令相关联的编译时条件。由编译器预处理源代码改变还包括确定在为目标计算平台编译计算机程序的更新版本时编译时条件的当前值。由编译器预处理源代码改变还包括基于编译时条件的当前值来确定对应于一个或多个计算机指令的目标代码。由编译器预处理源代码改变还包括存储宏的宏信息记录,宏信息记录包括编译时条件、编译时条件的当前值和这一个或多个计算机指令的标识。该方法还包括由链接器针对目标计算平台预处理源代码改变。由链接器预处理源代码改变包括确定对应于一个或多个计算机指令的目标代码未包括在可执行文件中,以及更新宏信息记录以指示宏未包括在可执行文件中。

4、根据本专利技术的一个或多个实施例,一种方法包括由处理器接收包括多个源代码文件的计算机程序,每个源代码文件包括一个或多个计算机指令。该方法还包括由编译器通过针对特定目标计算平台预处理计算机程序来生成宏信息。生成宏信息包括识别与宏所包含的一个或多个计算机指令相关联的编译时条件。产生宏信息进一步包括确定在为目标计算平台编译计算机程序的更新版本时编译时条件的当前值。生成宏信息还包括基于编译时条件的当前值来确定与一个或多个计算机指令相对应的目标代码。生成宏信息还包括在宏信息中存储宏的宏信息记录,宏信息记录包括编译时条件、编译时条件的当前值、定义宏的位置的标识、以及使用宏的位置的标识。该方法还包括由链接器结合宏信息来处理计算机程序。链接器的处理包括确定对应于一个或多个计算机指令的目标代码未包括在可执行文件中,以及更新宏信息记录以指示宏未包括在可执行文件中。

5、一种计算机程序产品包括计算机可读存储器,该计算机可读存储器具有存储在其上的计算机可执行指令,当由处理器执行时,该计算机可执行指令使处理器执行用于分析计算机程序的方法。该方法包括由处理器接收包括多个源代码文件的计算机程序,每个源代码文件包括一个或多个计算机指令。该方法还包括由编译器通过针对特定目标计算平台预处理计算机程序来生成宏信息。生成宏信息包括识别与宏所封装的一个或多个计算机指令相关联的编译时条件。产生宏信息进一步包括确定在为目标计算平台编译计算机程序的更新版本时编译时条件的当前值。生成宏信息还包括基于编译时条件的当前值来确定与一个或多个计算机指令相对应的目标代码。生成宏信息还包括在宏信息中存储宏的宏信息记录,宏信息记录包括编译时条件、编译时条件的当前值、定义宏的位置的标识、以及使用宏的位置的标识。该方法还包括由链接器结合宏信息来处理计算机程序。链接器的处理包括确定对应于一个或多个计算机指令的目标代码未包括在可执行文件中,以及更新宏信息记录以指示宏未包括在可执行文件中。

6、上述特征还可以至少由系统、计算机程序产品和机器以及其他类型的实现来提供。

7、本专利技术的实施例提供了技术解决方案,以便与现有解决方案相比以有效和改进的方式分析/隔离移植大规模项目时不需要的文件/函数/代码段。因此,本专利技术的实施例提高了保持大规模项目与上游改变和分支并进的效率,所述上游改变和分支可以包括在开源社区中进行的代码改变。本专利技术的一个或多个实施例便于发现上游分支中的代码更新是否需要被包括在移植版本中。如果对于目标计算平台130而言不需要,则不需要分析和调试更新。此外,本专利技术的一个或多个实施例促进软件开发工具的编辑器/用户界面,以通过基于此处所述的技术标记计算机程序的部分来提供大规模企业项目的高度可读且更友好的视图。

8、通过本专利技术的技术实现了额外的技术特征和益处。本专利技术的实施例和方面在本文中详细描述,并且被认为是所要求保护的本文档来自技高网...

【技术保护点】

1.一种计算机实现的方法,包括:

2.根据权利要求1所述的计算机实现的方法,还包括由所述编译器接收用于分析所述计算机程序中的所述源代码改变的指令。

3.根据权利要求2所述的计算机实现的方法,其中所述指令包括目标宏,并且所述计算机实现的方法还包括:

4.根据权利要求1所述的计算机实现的方法,还包括根据所述当前值在用户界面中识别由所述宏封装的所述一个或多个计算机指令,其中所述当前值指示所述一个或多个计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

5.根据权利要求1所述的计算机实现的方法,还包括在用户界面中识别一个或多个源代码文件,其中所述源代码文件中的计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

6.根据权利要求1所述的计算机实现的方法,其中由所述链接器预处理所述源代码改变还包括:

7.根据权利要求1所述的计算机实现的方法,其中,所述宏被定义在所述计算机程序的第一文件中并且被用在所述计算机程序的第二文件中。

8.一种系统,包括:

9.根据权利要求8所述的系统,其中,响应于接收到针对所述目标计算平台分析所述计算机程序的所述更新版本的指令,分析所述源代码改变。

10.根据权利要求9所述的系统,其中所述指令包括目标宏,并且所述系统还包括:

11.根据权利要求8所述的系统,其中,所述分析还包括根据所述当前值在用户界面中识别由所述宏封装的所述一个或多个计算机指令,其中,所述当前值指示所述一个或多个计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

12.根据权利要求8所述的系统,其中所述分析还包括在用户界面中识别一个或多个源代码文件,其中所述源代码文件中的计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

13.如权利要求8所述的系统,其中由所述链接器预处理所述源代码改变还包括:

14.根据权利要求8所述的系统,其中,所述宏在所述计算机程序的第一文件中定义,并且在所述计算机程序的第二文件中使用。

15.一种计算机程序产品,包括其上存储有计算机可执行指令的计算机可读存储器,所述计算机可执行指令在由处理器执行时使所述处理器执行一种用于分析计算机程序的更新版本的方法,其中所述分析包括:

16.根据权利要求15所述的计算机程序产品,其中响应于接收到针对所述目标计算平台分析所述计算机程序的所述更新版本的指令,分析所述源代码改变。

17.根据权利要求16所述的计算机程序产品,其中所述指令包括目标宏,并且所述系统还包括:

18.根据权利要求15所述的计算机程序产品,其中所述分析还包括根据所述当前值在用户界面中识别由所述宏封装的所述一个或多个计算机指令,其中所述当前值指示所述一个或多个计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

19.根据权利要求15所述的计算机程序产品,其中所述分析还包括在用户界面中识别一个或多个源代码文件,其中所述源代码文件中的计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

20.如权利要求15所述的计算机程序产品,其中由所述链接器预处理所述源代码改变还包括:

21.一种计算机实现的方法,包括:

22.根据权利要求21所述的计算机实现的方法,还包括由用户界面基于所述宏信息来更新所述计算机程序的显示。

23.根据权利要求22所述的计算机实现的方法,其中更新所述显示包括根据所述当前值在所述用户界面中识别由所述宏封装的所述一个或多个计算机指令,其中所述当前值指示所述一个或多个计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

24.一种计算机程序产品,包括计算机可读存储器,所述计算机可读存储器具有存储在其上的计算机可执行指令,所述计算机可执行指令在由处理器执行时使所述处理器执行一种用于分析计算机程序的方法,其中所述分析包括:

25.根据权利要求24所述的计算机程序产品,其中所述分析还包括在用户界面中识别一个或多个源代码文件,其中所述源代码文件中的计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

...

【技术特征摘要】
【国外来华专利技术】

1.一种计算机实现的方法,包括:

2.根据权利要求1所述的计算机实现的方法,还包括由所述编译器接收用于分析所述计算机程序中的所述源代码改变的指令。

3.根据权利要求2所述的计算机实现的方法,其中所述指令包括目标宏,并且所述计算机实现的方法还包括:

4.根据权利要求1所述的计算机实现的方法,还包括根据所述当前值在用户界面中识别由所述宏封装的所述一个或多个计算机指令,其中所述当前值指示所述一个或多个计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

5.根据权利要求1所述的计算机实现的方法,还包括在用户界面中识别一个或多个源代码文件,其中所述源代码文件中的计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

6.根据权利要求1所述的计算机实现的方法,其中由所述链接器预处理所述源代码改变还包括:

7.根据权利要求1所述的计算机实现的方法,其中,所述宏被定义在所述计算机程序的第一文件中并且被用在所述计算机程序的第二文件中。

8.一种系统,包括:

9.根据权利要求8所述的系统,其中,响应于接收到针对所述目标计算平台分析所述计算机程序的所述更新版本的指令,分析所述源代码改变。

10.根据权利要求9所述的系统,其中所述指令包括目标宏,并且所述系统还包括:

11.根据权利要求8所述的系统,其中,所述分析还包括根据所述当前值在用户界面中识别由所述宏封装的所述一个或多个计算机指令,其中,所述当前值指示所述一个或多个计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

12.根据权利要求8所述的系统,其中所述分析还包括在用户界面中识别一个或多个源代码文件,其中所述源代码文件中的计算机指令未被包括在所述计算机程序的所述更新版本的所述可执行文件中。

13.如权利要求8所述的系统,其中由所述链接器预处理所述源代码改变还包括:

14.根据权利要求8所述的系统,其中,所述宏在所述计算机程序的第一文件中定义,并且在所述计算机程序的第二文件中使用。...

【专利技术属性】
技术研发人员:黄文集陈小玲李圣双韩文斌苏隽
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1