使用CodeQL对ego-planner的源代码进行梳理和阅读

请您知悉,笔者默认您了解CodeQL是什么,它有什么作用,所以在此不赘述CodeQL,如您有疑问请看:https://blog.csdn.net/m0_54129327/article/details/128188144

 

deepseek对此也有说明:

 

”’

Q:有没有可以把一个代码包输入进去,可以分析整个代码包的函数架构的工具?

A:是的,有多款工具可以分析代码包的结构和函数依赖关系,以下是一些常用工具和方案,适用于不同编程语言和场景:


1. 静态代码分析工具

通用工具

  • CodeQL​(GitHub)
    • 支持多语言(Java/C/C++/Python/JS等),可自定义查询代码结构。
    • 生成函数调用图、类继承关系等。
    • 官网:https://codeql.github.com/

”’

 

笔者在windows和linux上都尝试了用CodeQL梳理ego-planner源码,windows由于没下载ROS+下载安装ROS+实现ROS环境相当复杂,所以笔者又打开了之前从零编译ego-planner使用的虚拟机进行尝试(https://www.fxsnps.com/index.php/从0开始到成功编译ego-planner并运行仿真程序/),最后成功将CodeQL导入进了ego-planner项目(尚未实现代码框架梳理,后续会继续完成)

 

鉴于在VMware上的Ubuntu很难进行科学上网,所以笔者也是用了VMware Tool把CodeQL CIL的Linux版本和CodeQl SDK的压缩包直接传进了虚拟机。

 

关于如何安装VMware Tool,笔者在此给您提供一篇博客以供参考(笔者的VMware Tool是预先安装好的,所以这篇博客的实用性还待您查证~~~):

关于VMware Tools 不再随旧版客户机操作系统的 VMware Workstation 一起提供。

 

鉴于ego-planner强烈推荐您使用VSCode进行学习,所以笔者也强烈推荐您使用VSCode并且在VSCode里面安装CodeQL插件并使用CodeQL

 

下面正式开始在Linux系统上使用CodeQL对CMake项目(eg:ego-planner)进行代码框架梳理的教程:

 

1、将CodeQL CIL的Linux版本和CodeQL SDK的压缩包下载到宿主机,并将其导入进虚拟机。

CodeQL CIL的下载地址:https://github.com/github/codeql-cli-binaries/releases

CodeQL SDK的下载地址:https://github.com/github/codeql

建议您把这两个压缩包复制到Ubuntu的”/home/您的虚拟机用户名/”这个文件路径下,这是用户目录,尽量不要将自己的文件放在root目录下。

2、在Ubuntu中启动终端,查找codeql的安装位置:sudo find / -name “codeql” 2>/dev/null

笔者个人比较建议您保留CodeQL CIL的Linux版本和CodeQL SDK的名字保留为原名,也就是codeql和codeql-main,然后新建一个CodeQL文件夹(放在/home/您的虚拟机用户名/),把它们都放在CodeQL文件夹下,以便查找。

 

3、将codeql可执行文件添加到虚拟机的环境变量:

echo ‘export PATH=$PATH:/home/您的虚拟机用户名/CodeQL/codeql’ >> ~/.bashrc

source ~/.bashrc

 

4、验证是否成功安装:codeql –version

 

5、安装编译数据库生成工具:sudo apt-get install bear # 用于捕获编译命令

 

6、为项目生成 CodeQL 数据库(在创建数据库时显式启用测试):

codeql database create database_for_egoplanner –language=cpp \
–command=”catkin_make -DCATKIN_ENABLE_TESTING=ON”

如果正常生成了CodeQL数据库,终端应该会出现如下反馈:

Successfully created database at /home/笔者的虚拟机用户名/ego-planner/database_for_egoplanner_2.

到这一步CodeQL应该就可以在您的虚拟机上的VsCode中使用了

 

7、后续生成代码框架图等更多功能还请等待笔者学习并成功生成之后再补充本博客~~~

 

参考文章:

 

「 CodeQL从入门到精通系列 」02.CodeQL安装指导及使用方式

 

白盒代码审计工具——CodeQL的安装与使用教程【Linux+Windows】