本发明涉及计算机,尤其涉及一种源码分析方法、装置、电子设备及存储介质。
背景技术:
1、对于项目源码的分析,相关技术中,往往依赖专业技术人员人工分析,存在人工成功较高的问题。若源码的代码量较多或源码的逻辑较为复杂,采用人工方式分析,通常分析会出现分析遗漏现象,导致源码分析的准确率降低。
技术实现思路
1、鉴于上述问题,本发明提供了一种源码分析方法、装置、电子设备及存储介质,以实现更加准确且快速的对源码进行可视化分析,降低了源码分析的成本,提升了源码分析的准确率。
2、根据本发明的一方面,提供了一种源码分析方法,该方法包括:
3、响应于针对目标项目的源码分析请求,确定所述源码分析请求对应的目标源码文件;
4、对所述目标源码文件进行语法分析,得到所述目标源码文件中的第一函数列表,所述第一函数列表包括待分析函数信息;
5、确定所述目标源码文件中与所述待分析函数信息对应的函数代码块,并确定所述函数代码块中的函数调用代码行,其中,所述函数调用代码行定义有第一函数调用信息;
6、将所述第一函数调用信息作为目标函数调用信息,基于所述目标函数调用信息,生成所述源码分析请求对应的函数调用链,并展示所述函数调用链。
7、根据本发明的另一方面,提供了一种源码分析装置。该装置包括:
8、源码文件获取模块,用于响应于针对目标项目的源码分析请求,确定所述源码分析请求对应的目标源码文件;
9、源码文件分析模块,用于对所述目标源码文件进行语法分析,得到所述目标源码文件中的第一函数列表,所述第一函数列表包括待分析函数信息;
10、调用信息确定模块,用于确定所述目标源码文件中与所述待分析函数信息对应的函数代码块,并确定所述函数代码块中的函数调用代码行,其中,所述函数调用代码行定义有第一函数调用信息;
11、调用链生成模块,用于将所述第一函数调用信息作为目标函数调用信息,基于所述目标函数调用信息,生成所述源码分析请求对应的函数调用链,并展示所述函数调用链。
12、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
13、至少一个处理器;以及
14、与所述至少一个处理器通信连接的存储器;其中,
15、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一所述的源码分析方法。
16、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一所述的源码分析方法。
17、本发明实施例的技术方案,通过接收针对目标项目的源码分析请求,确定所述源码分析请求对应的目标源码文件;对所述目标源码文件进行语法分析,得到所述目标源码文件中的第一函数列表,所述第一函数列表包括待分析函数信息。确定所述目标源码文件中与所述待分析函数信息对应的函数代码块,并确定所述函数代码块中的函数调用代码行,其中,所述函数调用代码行定义有第一函数调用信息。将所述第一函数调用信息作为目标函数调用信息,基于所述目标函数调用信息,生成所述源码分析请求对应的函数调用链,并展示所述函数调用链。本发明实施例的技术方案,实现了更加准确且快速的对源码进行可视化分析,降低了源码分析的成本,提升了源码分析的准确率。
18、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种源码分析方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述确定所述源码分析请求对应的目标源码文件,包括:
3.根据权利要求2所述的方法,其特征在于,所述第一函数调用信息包括第一函数参数类型;所述将所述第一函数调用信息作为目标函数调用信息,包括:
4.根据权利要求3所述方法,其特征在于,所述第一函数参数类型包括函数入口参数类型和/或函数返回参数类型。
5.根据权利要求1所述的方法,其特征在于,所述确定所述函数代码块中的函数调用代码行,包括:
6.根据权利要求5所述的方法,其特征在于,所述预设逻辑子代码块包括选择逻辑代码块、循环逻辑代码块、异常捕获代码块以及返回执行代码块中的至少一种。
7.根据权利要求1所述的方法,其特征在于,在对所述目标源码文件进行语法分析之后,所述方法还包括:
8.一种源码分析装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的源码分析方法。