0
点赞
收藏
分享

微信扫一扫

使用Vscode断点调试apollo的方法

前言

Vscode 作为轻量化的调试工具深受广大开发者的青睐,虽然大家都用它来看新闻逛论坛炒股,但是用它开发算法确实方便。

Apollo作为成熟的自动驾驶系统被广泛使用,但是关于它调试代码的方法却介绍很少,相信大家也一定希望可以在apollo代码中打断点,来看程序执行过程中的变量以及逻辑,本文将介绍如何使用Vscode打断点调试apollo。

如果对自动驾驶规划、控制、apollo算法细节、感知融合算法感兴趣,可以关注我的专栏:

Apollo决策规划模块代码详解

最新文章推荐:

LQR算法进行轨迹跟踪,lqr_speed_steering_control( )的python实现 

Apollo Planning决策规划代码详细解析 (1):Scenario选择 

prescan联合simulink进行FCW的仿真_自动驾驶 Player的博客-CSDN博客 

调试方法如下:

1、Vscoed中安装对应插件,需要安装Remote-Containers Docker 两个插件:

2、下载Apollo工程并执行脚本构建apollo镜像

bash docker/scripts/dev_start.sh

第一次构建镜像比较耗时,可以切换国内源加速,看到OK 说明镜像拉取成功。

3、第一次使用Vscode 连接apollo docker时,可能要先在命令行进入docker

bash docker/scripts/dev_into.sh

出现类似下面字样说明已经进入docker

4、此时可以使用Vscode的 Remote-Containers 插件来连接docker

右键需要进入的容器,选择attach to cotainers 进入容器

当左下角出现对应容器的名称,并且终端显示apollo docker的路径,则说明连接成功:

5、接下来这步最关键,需要build可调试版本的软件,以apollo 5.5 举例,指令如下:

bash apollo.sh build_cpu --jobs=1 --ram_utilization_factor 60

6、在当前容器中安装debug需要的插件,可以使用配置文件来安装:

{
 "extensions": [
 "ms-vscode.cmake-tools",
 "ms-vscode.cpptools",
 ],
 "workspaceFolder": "/apollo",
 "remoteUser": "xxx",
 "remoteEnv": {
 "HISTFILE": "/apollo/.dev_bash_hist"
 }
}

7、接下来一步也很重要,根据需求来写vscode的launch.json;以单元测试来距离,写法如下,可以根据不同需求来替换program

{
 "version": "0.2.0",
 "configurations": [

 {
 "name": "(gdb) Launch",
 "type": "cppdbg",
 "request": "launch",
 // "program": "/apollo/bazel-bin/modules/planning/scenarios/lane_follow/lane_follow_scenario_test",
 // "program": "/apollo/bazel-bin/modules/control/control_component_test",
 "program": "/apollo/bazel-bin/modules/control/control_component_lib",


 "args": [],
 "stopAtEntry": false,
 "cwd": "${workspaceFolder}",
 "environment": [],
 "externalConsole": false,
 "MIMode": "gdb",
 "setupCommands": [
 {
 "description": "Enable pretty-printing for gdb",
 "text": "-enable-pretty-printing",
 "ignoreFailures": true
 }
 ],
 "miDebuggerPath": "/usr/bin/gdb"

 }
 ]
}

8、接下来在对应cpp文件中打断点,就可以使用Vscode 的debug功能了

举报

相关推荐

0 条评论