1. 前言
apollo自动驾驶框架是优秀的开源工程。作为自动驾驶开发人员,无论是架构设计还是算法细节的完善,apollo都有很多值得学习的地方。但是按照官方提供的GDB环境配置来看,复杂导致实际的调试效率低下。本文带你快速用vscode搭建起一个debug环境,快速上手使用apollo!
2. 基础环境安装
2.1 VS Code安装
在vs code官网下载对应ubuntu系统的安装包,如下图所示:

在ubuntu系统中执行dpkp -i 命令进行安装。
2.2 必备插件
-
Dev Containers
-
Remote - SSH
-
C/C++
-
Clang-Format
-
CMake
-
EditorConfig
-
Protobuf VSC
-
vscode-proto
注:其余插件根据个人使用情况自行安装。
3. 调试环境配置
3.1 连接模式
-
本机模式:VS Code 与 Apollo Docker 镜像部署在同一开发环境。
-
远程模式:VS Code 与 Apollo Docker 镜像分属不同环境,需通过 Remote-SSH 远程连接 Apollo 所在主机。
3.2 配置过程
3.2.1 启动Apollo
根据Apollo安装文档,完成基础环境配置后,启动Apollo镜像,执行命令如下:
cd apollo-10.0/
./docker/scripts/dev_start.sh
完成启动之后,可以使用docker ps查看所有已启动的apollo镜像。
3.2.2 关联连接
本机模式和远程模式均需依赖 Dev Containers 插件,实现 Docker 环境访问。其中远程模式需额外安装 Remote-SSH 插件,先连接远程主机。
3.2.2.1 本机模式操作步骤
VS Code 启动后,打开【远程资源管理器】→【开发容器】;若本地存在已启动的容器,页面将自动展示容器列表,如下图所示。

3.2.2.2 远程模式操作步骤
VS Code 启动后,打开【远程资源管理器】→【远程(隧道 / SSH)】→【新建远程】,如下图所示:

成功连接远程主机后,再打开【远程资源管理器】→【开发容器】;若远程环境存在已启动的容器,将自动展示容器列表,展示效果参考本地模式。
3.2.2.3 关联容器
在【远程资源管理器】→【开发容器】中,选中需要关联的目标容器,鼠标【右键】→【在当前窗口附件/在新窗口中附加】,如下图所示。

3.2.2.4 添加关联容器配置
附加到目标容器后,点击命令列表,在弹出的窗口中点击【打开容器配置文件】,操作过程如下图所示:

配置文件打开后,添加如下配置内容,其中remoteUser为远程调试用户名(例如:ZhangSan),且配置的用户名一定要与实际使用的用户名一致,否则会引起连接失败。
{
"extensions": [
"BazelBuild.vscode-bazel",
"DamianKoper.gdb-debug",
"eamodio.gitlens",
"GitHub.vscode-pull-request-github",
"Gruntfuggly.todo-tree",
"jeff-hykin.better-cpp-syntax",
"mhutchie.git-graph",
"MS-CEINTL.vscode-language-pack-zh-hans",
"ms-vscode-remote.remote-containers",
"ms-vscode-remote.remote-ssh",
"ms-vscode-remote.remote-ssh-edit",
"ms-vscode-remote.remote-wsl",
"ms-vscode.cmake-tools",
"ms-vscode.cpptools",
"ms-vscode.cpptools-extension-pack",
"ms-vscode.cpptools-themes",
"ms-vsliveshare.vsliveshare",
"twxs.cmake"
],
"workspaceFolder": "/apollo_workspace",
"remoteUser": "ZhangSan",
"remoteEnv": {
"HISTFILE": "/apollo_workspace/.dev_bash_hist"
}
}
3.2.3 常见问题处理
初次配置时,常因忘记修改 remoteUser 参数,导致保存配置后重新进入容器失败,提示错误:no matching


1102

被折叠的 条评论
为什么被折叠?



