前面介绍了如何安装VSCode以及飞控源码的导入,继续上一节教程:Ardupilot源码的查看和编译(1)
01
—
安装GDB
GDB是UNIX及UNIX-like下的调试工具。如果在 UNIX平台下做软件,GDB调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能,比BCB的图形化调试器有更强大的功能。
Ubuntu系统直接执行下面这条命令安装:
02
—
设置SITL
为了使用GDB,需要使用调试符号配置SITL构建。
PS:如果在使用中SITL遇到问题无法初始化,可以使用下面的命令恢复,该命令把配置生成的文件清除,再重新配置编译。
03
—
取消限制
对于Ubuntu用户,默认保护将阻止您从IDE将gdb附加到SITL。这将导致第一次尝试附加到本地进程时出现错误消息。
ptrace: Operation not permitted
在这种情况下,请执行以下操作之一:
要临时禁用此限制,请打开终端输入命令:
要永久禁用此限制,请打开/etc/sysctl.d/10-ptrace.conf文件进行编辑,并将内核kernel.yama.ptrace_scope = 1更改为kernel.yama.ptrace_scope = 0。要立即应用更改,请运行sudo service procps restart或重新启动系统。
04
—
调试
4.1 启动VSCode, 进入调试菜单,然后添加配置
4.2单击并选择C/C++ : (gdb) Attach附加 选项
4.3 在“program”行中,将
改为
4.4 使用快捷键 Ctrl+Shift+` 在VSCode内打开终端。此终端和我们通过右键点击ubuntu桌面打开的调试终端类似;
4.5 在VSCode终端内使用启动脚本sim_vehicle.py启动SITL:只需添加-D即可构建和启动带有调试符号的SITL:
4.6 现在就可以使用VSCode进行调试,点击左上角的绿色三角,开始调试。
4.7 在弹出的命令行中选择ArduCopter,或者要调试的其他模型名称,然后进行超级用户的认证。
4.8 现在调试的配置就完成。 到这一步,就可以进行放置断点,查看变量等调试了。
主要调试快捷键说明
-
F5 :全速运行
-
F6 :暂停
-
F10 :单步跳过
-
F11 :单步调试
-
Shift + F11 :单步跳出
-
Ctrl + Shift + F5 :重启
关于VSCode调试ardupilot源码的入门方法就基本介绍完了。对于ardupilot源码的学习和GDB命令行的操作,可以参考以下链接:
1.Learning the ArduPilot Codebase — Dev documentation
标签:Ardupilot,SITL,VSCode,编译,GDB,源码,ptrace,调试 From: https://blog.csdn.net/cqszyy888888/article/details/141197119