apollo修改配置刷新bean_开发者说丨使用 Vscodeinsiders 的docker扩展 调试Apollo项目

c0f29dced95a37c87f8b8ced20adab8a.png

在Apollo开发者社区中,经常被问及的一个问题是:用什么IDE工具进行开发?

Apollo开发者社区荣誉布道师—贺博士曾经写过一篇博客使用Vscode编译调试Apollo项目,介绍了如何用Vscode结合Gdb进行调试,为开发者提供了调试方法。

社区优秀开发者—杨鸿城近期发现一种更为简便的方式可以用Vscode-insiders进行Apollo项目调试,操作体验非常接近IDE,故写一篇教程分享给大家,希望能给广大开发者带来一定的帮助。

  以下,ENJOY  

d4c6eccbcb7f1c9dcc0a431737977461.png

VsCode是微软第一款支持Linux的轻量级代码编辑器,其功能介于编辑器与IDE之间,但更倾向于一个编辑器。Vscode有两个版本,蓝色的Vscode是非常稳定的发行版本,Vscode-insiders,相当于Bate版本,测试版,会有一些新的功能。

本文使用Vscode-insiders 的Docker 和Remote - Containers 扩展,可以便捷地调试Apollo项目,而蓝色的Vscode不具备该调试功能。

9b376edc2b367f73cee4a6948fa27af8.png

131d58e32c86e4c1dbc4f7df6c3f0f0b.png

Vscode-insiders有两种安装方式,分别是Apt安装Deb包安装。Vscode-insiders 和蓝色的Vscode 可以同时使用,安装Vscode-insiders 无需卸载蓝色的Vscode。

Apt方式安装:

1sudo apt-get update2sudo apt-get install code-insiders

Deb方式安装:

在 https://code.visualstudio.com/insiders/ 下载 Vscode-insiders 的Deb包,

1sudo dpkg -i code-insiders_xxx.deb

01613c777de65cb1ce7667763540c611.png

运行Vscode-insiders,在扩展栏中搜索 Docker 和 Remote - Containers 扩展并安装。


在 https://code.visualstudio.com/docs/remote/containers 中可查看Docker扩展的详细教程。

b6e3321ee60e156c7c28dc9f5a8b145f.png

Docker安装

571cf54c5682ac0937ec4229a0ead7e4.png

Remote - Containers安装

由于Apollo项目是用C++进行开发,所以还需安装C++扩展

e3335a61ced492fba67b56806a9d73a0.png

C++扩展

安装完毕后如图所示:

5294498d2e6ea8d2473f7853c57ecdc9.png

Docker 和 Remote - Containers 安装图示

2a7142350e029e3fbd60941e8dbe6921.png

851bb96b0cb45575c2fc40bfec2fdc4b.png

关于如何构建 Apollo3.5或5.0 已在Ubuntu14.04搭建GPU版本的百度Apollo3.5自动驾驶平台详细介绍。 

1cd apollo2bash docker/scripts/dev_start.sh 3bash docker/scripts/dev_into.sh 4bash scripts/bootstrap.sh

f68765890c9eab94d9ffe72d972c02e9.png

Apollo Docker 启动后,打开Vscode-insiders,选中Docker图标,出现Apollo镜像,如图所示:

9d2f418d2df8468f0dcf872e15dd7352.png

启动Vscode-insiders

右键选中Apolloauto/apollo:dev-x86_64-xxx 镜像,选中Attach visual studio code(蓝色的Vscode即使安装了Docker扩展也没有此选项)

8c3f8f00656ecf2435e4b4143b5fc640.png

选中Attach visual studio code

此时Vscode会自动打开一个新窗口加载Container,若左下角出现 Attached container 字样,则表示 Vscode 已加载完成。

65d5615c99d2e319fdd7047d568fc30e.png

Vscode 加载完成

然后选择 【打开文件夹】,键入 /apollo/ 后确定

6b8381165a17b7acfe7b2f5e44a7f920.png

键入 /apollo/ 

此时Vscode-insiders 已经加载 Apollo 镜像中的/apollo 文件夹,接着打开扩展栏,在Docker中安装C++ 扩展(部分电脑会自动安装),安装后点击【重新加载】。

37bc9a38eab4abaa256328f9dd27b460.png

在Docker中安装C++ 扩展

加载完成后即配置好环境

95683ae16b8914f5f93ed71d75ae06db.png

加载完成

fb5198c58ece0e90987b1aa3797dc2a5.png

a7dc225d0e63a01168e67f6cef4daa0f.png

完成环境配置后,选择【调试】-【打开配置】,自动打开 /Apollo/.vscode/launch.json 配置文件:

根据自己的需要,修改 Program 和 Args 参数,即可调试Apollo单元测试程序,以下给出一个例子:

 1{

(向右滑动可查看完整代码)

打开对应的测试代码文件,加入断点,选择【调试】-【启动调试】,即可像其他IDE进行方便的代码调试。

  • F10:单步调试

  • F11:单步跳入

  • Shift+F11:单步跳出

左侧可直观地看到堆栈和变量信息:

88761ade6600c21afd2283ea0f601372.png

堆栈和变量信息

修改代码后在Docker中运行Build,完成编译后即可再次启动调试。

5213cf7feac7892e96aaa7abe2e9be31.png

Apollo开发者社区公众号曾发过的《开发者说 | Apollo 3.5各功能模块启动过程解析》详细地介绍了Apollo3.5 的模块启动过程。

通过在 /apollo/cyber/mainboard/mainboard.cc 加入断点,可以详细地看到模块的启动过程(如何加载Dag和Conf文件进行初始化),极大地方便了开发者理解和调试Apollo模块。

PS: Apollo3.0及以前的版本仍然可用此种方式调试,只需把 Program 改成Ros可执行程序路径,以及 Args改成对应的参数。

 1{

(向右滑动可查看完整代码)

8bd2a61ba90b59c03aecb2632c5b6620.png

调试Apollo板块

e52a11f98f9a26b62a76bb9c64df59ca.png

*《Vscode-insiders 的 docker扩展》

https://code.visualstudio.com/docs/remote/containers

*《使用Visual Studio Code编译、调试Apollo项目》

https://blog.csdn.net/davidhopper/article/details/79819587

*《使用GDB调试Apollo项目》

https://blog.csdn.net/davidhopper/article/details/83445976

*《使用GDB调试Apollo单元测试程序》

https://blog.csdn.net/davidhopper/article/details/82589722

*《Apollo 3.5 各功能模块的启动过程解析》

https://blog.csdn.net/davidhopper/article/details/85248799

更多话题讨论、技术交流

可以添加Apollo小哥哥为好友

进开发者交流群

bc5381b3152a1ab0eb20bf873b281fb6.png

7dae2e7c580aed931785ada363b77aaf.gif

8a448679606c6985e4f7b5dfcc50c473.png

* 以上内容为开发者原创,不代表百度官方言论。

内容来自CSDN:

https://blog.csdn.net/weixin_43426627/article/details/99823912,欢迎大家收藏点赞。

cc033833740c5510fcfb3e82f74ca631.png

cf047a54ef3d4d7e6b2d4a01955c65fc.png

945a14b6ffb78026b9dea37b67192a75.png

2cb0e9abab613bfb68db6159c6d9ff55.png

e9dc16dc5297e4808845c109ff0a0d65.png

3e7d736c7be20d10338dcf0751ba4ada.gif

d66ed9a012c18e3e3130f7a4125804e3.gif

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值