System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于编译采集的精确分析方法、系统、介质及设备技术方案_技高网

基于编译采集的精确分析方法、系统、介质及设备技术方案

技术编号:41241213 阅读:3 留言:0更新日期:2024-05-09 23:53
本发明专利技术提供了一种基于编译采集的精确分析方法、系统、介质及设备,包括:步骤1:对编译器编译过程进行监控,对源代码进行数据的编译采集并进行解析,得到源码编译过程中产生的编译信息;步骤2:判断编译信息中是否存在头文件信息和宏定义信息,若是则使用编译器进行预编译,若否则生成去除无关信息的源码文件;步骤3:进行源码模糊分析,生成语法树结构文件。本发明专利技术通过对预处理后的代码进行通用的模糊分析,从而实现了源代码的精确分析,解决了通过clang精确分析存在结构不正确的问题。

【技术实现步骤摘要】

本专利技术涉及数据分析,具体地,涉及一种基于编译采集的精确分析方法、系统、介质及设备


技术介绍

1、现有的源码模糊分析功能无法精确的将宏定义中未被激活的语法、调用等相关调用信息去除掉,会导致实际语句覆盖率等信息出现偏差。

2、专利文献cn113391815a公开了一种基于多种开发语言的源码分析结果测试方法及系统,包括:生成模块:使用不同封装的源码分析引擎对输入的源码文件进行解析,得到不同的语法树结果文件;预处理模块:将不同的语法树结果文件进行预处理,得到标准化后的语法树文件;对比判断模块:构建节点匹配规则和节点自定义对比规则,在对比过程中进行对比序列的最大匹配序列计算,根据匹配度判断源码分析引擎的正确性。然而该专利无法进行源码的精确分析功能,分析出来的语句情况可能会跟实际的出现偏差。


技术实现思路

1、针对现有技术中的缺陷,本专利技术的目的是提供一种基于编译采集的精确分析方法、系统、介质及设备。

2、根据本专利技术提供的基于编译采集的精确分析方法,包括:

3、步骤1:对编译器编译过程进行监控,对源代码进行数据的编译采集并进行解析,得到源码编译过程中产生的编译信息;

4、步骤2:判断编译信息中是否存在头文件信息和宏定义信息,若是则使用编译器进行预编译,若否则生成去除无关信息的源码文件;

5、步骤3:进行源码模糊分析,生成语法树结构文件。

6、优选地,所述步骤1包括:

7、步骤1.1:将编译过程中产生的过程信息通过管道的方式进行输出;

8、步骤1.2:将管道输出的过程信息进行整合采集。

9、优选地,所述步骤2包括:

10、步骤2.1:将头文件信息和宏定义信息以参数的形式添加到对应的指令中,使用平台指定的处理器进行源码的预处理,得到源码预处理文件;

11、步骤2.2:基于源码预处理文件,得到一份去源码宏定义分支和无关信息的源码信息文件,将源码预处理文件中未涉及的行信息都进行去除,生成一份新的临时文件,该新的临时文件中将仅保留有效的源码文件。

12、优选地,所述步骤3包括:

13、步骤3.1:对源码从字元结构、层次结构、构造树形结构进行划分,根据对代码块的基础块划分和基础块的重新组合,得到xml格式的源码结构文件;

14、步骤3.2:基于xml格式的源码结构文件生成树形结构文件。

15、根据本专利技术提供的基于编译采集的精确分析系统,包括:

16、模块m1:对编译器编译过程进行监控,对源代码进行数据的编译采集并进行解析,得到源码编译过程中产生的编译信息;

17、模块m2:判断编译信息中是否存在头文件信息和宏定义信息,若是则使用编译器进行预编译,若否则生成去除无关信息的源码文件;

18、模块m3:进行源码模糊分析,生成语法树结构文件。

19、优选地,所述模块m1包括:

20、模块m1.1:将编译过程中产生的过程信息通过管道的方式进行输出;

21、模块m1.2:将管道输出的过程信息进行整合采集。

22、优选地,所述模块m2包括:

23、模块m2.1:将头文件信息和宏定义信息以参数的形式添加到对应的指令中,使用平台指定的处理器进行源码的预处理,得到源码预处理文件;

24、模块m2.2:基于源码预处理文件,得到一份去源码宏定义分支和无关信息的源码信息文件,将源码预处理文件中未涉及的行信息都进行去除,生成一份新的临时文件,该新的临时文件中将仅保留有效的源码文件。

25、优选地,所述模块m3包括:

26、模块m3.1:对源码从字元结构、层次结构、构造树形结构进行划分,根据对代码块的基础块划分和基础块的重新组合,得到xml格式的源码结构文件;

27、模块m3.2:基于xml格式的源码结构文件生成树形结构文件。

28、根据本专利技术提供的存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的基于编译采集的精确分析方法的步骤。

29、根据本专利技术提供的电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现所述的基于编译采集的精确分析方法的步骤。

30、与现有技术相比,本专利技术具有如下的有益效果:

31、(1)本专利技术通过采用编译过程中的管道输出跟通过脚本语句进行数据解析相结合的技术,解决了源码分析过程无法获取相关宏定义的问题;

32、(2)本专利技术通过采用文本信息比对的方式,对整个源码行进行宏定义代码的屏蔽,从而实现了代码的预处理;

33、(3)本专利技术通过对预处理后的代码进行通用的模糊分析,从而实现了源代码的精确分析,解决了通过clang精确分析存在结构不正确的问题。

本文档来自技高网...

【技术保护点】

1.一种基于编译采集的精确分析方法,其特征在于,包括:

2.根据权利要求1所述的基于编译采集的精确分析方法,其特征在于,所述步骤1包括:

3.根据权利要求1所述的基于编译采集的精确分析方法,其特征在于,所述步骤2包括:

4.根据权利要求1所述的基于编译采集的精确分析方法,其特征在于,所述步骤3包括:

5.一种基于编译采集的精确分析系统,其特征在于,包括:

6.根据权利要求5所述的基于编译采集的精确分析系统,其特征在于,所述模块M1包括:

7.根据权利要求5所述的基于编译采集的精确分析系统,其特征在于,所述模块M2包括:

8.根据权利要求5所述的基于编译采集的精确分析系统,其特征在于,所述模块M3包括:

9.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的基于编译采集的精确分析方法的步骤。

10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的基于编译采集的精确分析方法的步骤。

...

【技术特征摘要】

1.一种基于编译采集的精确分析方法,其特征在于,包括:

2.根据权利要求1所述的基于编译采集的精确分析方法,其特征在于,所述步骤1包括:

3.根据权利要求1所述的基于编译采集的精确分析方法,其特征在于,所述步骤2包括:

4.根据权利要求1所述的基于编译采集的精确分析方法,其特征在于,所述步骤3包括:

5.一种基于编译采集的精确分析系统,其特征在于,包括:

6.根据权利要求5所述的基于编译采集的精确分析系统,其特征在于,所述模块m1包括:

7.根据权利要求5所述...

【专利技术属性】
技术研发人员:王苏鹏张必勇秦炜
申请(专利权)人:上海创景信息科技有限公司
类型:发明
国别省市:

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

1