[发明专利]一种函数调用关系的扫描方法、系统、设备及存储介质在审
| 申请号: | 202011583829.0 | 申请日: | 2020-12-28 |
| 公开(公告)号: | CN112596737A | 公开(公告)日: | 2021-04-02 |
| 发明(设计)人: | 陈超咏 | 申请(专利权)人: | 上海品顺信息科技有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王云晓 |
| 地址: | 201100 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 函数 调用 关系 扫描 方法 系统 设备 存储 介质 | ||
本发明公开了一种函数调用关系的扫描方法、系统、设备及存储介质,其中方法包括:对Clang编译器的插件进行改造;将改造后的Clang编译器的插件加入到Objective‑C源码的编译过程中,以同步完成函数调用关系的提取,并录入数据库。本发明通过对基于LLVM的Clang编译器的插件进行改造,使得可在Objective‑C源码编译过程中同步完成AST语法树的扫描,并同步提取出函数调用关系,大大压缩了AST语法树扫描的时间,在提升效率的同时,函数调用关系的提取更准确。
技术领域
本发明涉及计算机技术领域,尤其涉及一种函数调用关系的扫描方法、系统、设备及存储介质。
背景技术
软件产品的生命周期主要包括研究、设计、开发、测试、发布、运行和实现等阶段。开发人员通常在开发阶段会使用ide(Integrated Development Environment,集成开发环境)工具来完成软件的编码和调试。在软件开发过程中,编辑函数调用是构建软件系统的重要组成部分,所有的软件实体都是由函数之间的逐层调用组成的,因此,在开发过程和调试过程中,确定函数调用关系显得尤为重要。
现有技术中,C/C++/Objective-C源码编译分几个重要过程,例如先做词法分析获取token,然后做语法分析获取AST语法树,再通过编译获得IR中间代码,最后通过一系列的链接、汇编、生成目标文件等操作,最终生成可执行文件。在整个编译过程中,AST语法树中包含代码的函数调用关系,这些函数调用关系可用于后续的代码的逻辑分析,但未被外部提取。目前,业界的函数调用关系扫描提取与编译过程是隔离的,这意味着需要在编译完成后再重复做一次语法分析,才能获得函数调用关系,效率较低。
因此,如何对现有的技术进行改进,以克服上述缺陷成为了本领域技术人员重要的研究课题之一。
以上信息作为背景信息给出只是为了辅助理解本公开,并没有确定或者承认任意上述内容是否可用作相对于本公开的现有技术。
发明内容
本发明提供一种函数调用关系的扫描方法、系统、设备及存储介质,以解决现有技术的不足。
为实现上述目的,本发明提供以下的技术方案:
第一方面,本发明实施例提供提供一种函数调用关系的扫描方法,所述方法包括:
对Clang编译器的插件进行改造;
将改造后的Clang编译器的插件加入到Objective-C源码的编译过程中,以同步完成函数调用关系的提取,并录入数据库。
进一步地,所述函数调用关系的扫描方法中,所述对Clang编译器的插件进行改造的步骤包括:
重写基于LLVM的Clang编译器的RecursiveASTVisitor类的VisitDecl和VisitStmt,并通过clang::FrontendPluginRegistry往Clang编译器注册新的插件。
进一步地,所述函数调用关系的扫描方法中,所述将改造后的Clang编译器的插件加入到Objective-C源码的编译过程中,以同步完成函数调用关系的提取,并录入数据库的步骤包括:
将改造后的Clang编译器的插件加入到Objective-C源码的编译过程中,以同步完成函数调用关系的提取,并记录在本地;
编译完毕后,通过脚本扫描本地的函数调用关系,并插入数据库。
第二方面,本发明实施例提供一种函数调用关系的扫描系统,所述系统包括:
改造模块,用于对Clang编译器的插件进行改造;
提取模块,用于将改造后的Clang编译器的插件加入到Objective-C源码的编译过程中,以同步完成函数调用关系的提取,并录入数据库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海品顺信息科技有限公司,未经上海品顺信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011583829.0/2.html,转载请声明来源钻瓜专利网。





