【技术实现步骤摘要】
一种代码分析方法、装置、计算机设备及存储介质
[0001]本公开涉及计算机
,具体而言,涉及一种代码分析方法、装置、计算机设备及存储介质。
技术介绍
[0002]在对软件工程源代码进行分析的过程中,往往会使用到多种代码分析工具,以通过不同的分析方式对软件工程源代码进行分析,但每种代码分析工具的使用方法和运行环境往往是不同的,因此难以同时使用多种代码分析工具对源代码进行分析。
[0003]相关技术中,为了能够同时使用多种代码分析工具进行源代码分析,可以采用持续集成的方式将各个代码分析工具集成为一个整体,并在进行源代码分析的过程中依次串行执行各代码分析工具,这样虽然能够依次使用多种代码分析工具进行源代码分析,但是由于将多个代码分析工具集成为一个整体,因此当集成后的代码分析工具在分析过程中崩溃的情况下,则需要重新进行源代码分析,效率较低。
技术实现思路
[0004]本公开实施例至少提供一种代码分析方法、装置、计算机设备及存储介质。
[0005]第一方面,本公开实施例提供了一种代码分析方法,应用 ...
【技术保护点】
【技术特征摘要】
1.一种代码分析方法,其特征在于,应用于代码分析引擎,所述代码分析引擎用于调用代码分析工具进行代码分析,所述方法包括:响应于接收到指示使用多种代码分析工具对待分析代码进行分析的代码分析任务指令,对所述代码分析任务指令进行解析,得到各代码分析工具分别对应的分析子任务;其中,不同种代码分析工具对应的运行环境不同;针对任一所述分析子任务,在检测到所述代码分析引擎存储的分析状态信息中,不存在与该分析子任务匹配的历史子任务分析结果的情况下,调用与该分析子任务对应的代码分析工具,执行该分析子任务,并在该分析子任务执行完毕后,根据该分析子任务的子任务分析结果,对所述代码分析引擎存储的分析状态信息进行更新;其中,所述分析状态信息包括历史分析子任务对应的历史子任务分析结果;基于各分析子任务分别对应的子任务分析结果,生成所述待分析代码对应的代码分析结果。2.根据权利要求1所述的方法,其特征在于,所述对所述代码分析任务指令进行解析,包括:在用户态空间中创建用于进行指令解析的主例程,并调用所述主例程对所述代码分析任务指令进行解析,将解析得到的分析子任务添加至分析子任务列表中。3.根据权利要求2所述的方法,其特征在于,在对所述代码分析任务指令进行解析之前,所述方法还包括:在内核态空间中加载所述代码分析引擎中存储的分析状态信息,并在检测到所述分析状态信息为空的情况下,建立所述分析子任务列表。4.根据权利要求2或3所述的方法,其特征在于,所述分析子任务通过所述代码分析引擎分配的计算节点执行;所述调用与该分析子任务对应的代码分析工具,执行该分析子任务,包括:在所述计算节点的数量满足并行执行所述分析子任务列表中的各分析子任务对应的数量要求的情况下,为各所述分析子任务分配对应的计算节点,并通过各计算节点并行执行分析子任务;以及,在所述计算节点的数量不满足并行执行所述分析子任务列表中的各分析子任务对应的数量要求的情况下,按照所述分析子任务列表中执行的各个分析子任务的执行顺序,在该分析子任务之前的其他分析子任务执行完毕后,为该分析子任务分配计算节点,并通过该分析子任务被分配的计算节点,调用与该分析子任务对应的代码分析工具,执行该分析子任务。5.根据权利要求4所述的方法,其特征在于,在执行分析子任务之前,所述方法还包括:在用户态空间中创建与各分析子任务对应的代码分析工具的运行环境匹配的子例程;所述通过该分析子任务被分配的计算节点,调用与该分析子任务对应的代码分析工具,执行该分析子...
【专利技术属性】
技术研发人员:张涛,李超,宁戈,蔡智强,周辜名,
申请(专利权)人:北京安普诺信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。