首页 > 编程语言 >Ardupilot源码的查看和编译(2)

Ardupilot源码的查看和编译(2)

时间:2024-08-14 18:27:03浏览次数:9  
标签:Ardupilot SITL VSCode 编译 GDB 源码 ptrace 调试

前面介绍了如何安装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

2.RMS's gdb Tutorial

标签:Ardupilot,SITL,VSCode,编译,GDB,源码,ptrace,调试
From: https://blog.csdn.net/cqszyy888888/article/details/141197119

相关文章

  • 什么是短视频矩阵系统-短视频矩阵系统源码开发流程
    开发和部署短视频矩阵源码涉及的关键步骤包括:环境配置:设置所需的开发环境,如PHP、集成开发环境(IDE)以及数据库。源码集成:将短视频矩阵的源代码导入到IDE中,并配置必要的编译环境和依赖项。配置文件调整:根据开发环境的具体要求,修改数据库和服务器的配置文件。数据库构建:建立数......
  • 课程设计-基于Springboot+Vue的生鲜交易系统的设计与实现(源码+LW+包运行)
    源码获取:https://download.csdn.net/download/u011832806/89460525基于SpringBoot+Vue的生鲜交易系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven系统演示视频:链接:https://pan.baidu.com/s/1NzmQFwX8e6una-ykZ6KGww?pwd=wa......
  • 课程设计-基于Springboot+Vue的网上书城的设计与实现(源码+LW+包运行)
    源码获取:https://download.csdn.net/download/u011832806/89461644基于SpringBoot+Vue的网上书城开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven系统演示视频:链接:https://pan.baidu.com/s/1EWMhc80qzi_R__dAXMtKVA?pwd=t8pv......
  • 《开发板 —— 交叉编译移植openssl、curl、mosquitto》
    1.移植openssl1.下载openssl,我这边下载的是openssl-3.3.1,下载后在linux中解压。2.配置编译安装(以下相关目录对应位置是随便写的,需要根据实际替换)#./configno-asm--prefix=/home/3520/software/openssh-server/package--cross-compile-prefix=arm-hisiv400-linux......
  • SSM基于的社区疫情防控管理信息系统的设计与实现khjit 本系统(程序+源码+数据库+调试部
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:居民,核酸检测,检测预约,检测记录,健康上报,出入信息,物品申请,物品派送开题报告内容一、课题背景与意义随着全球新冠疫情的持续蔓延,社区疫情防控成为......
  • ConcurrentHashMap源码阅读
    finalVputVal(Kkey,Vvalue,booleanonlyIfAbsent){if(key==null||value==null)thrownewNullPointerException();inthash=spread(key.hashCode());intbinCount=0;for(Node<K,V>[]tab=table;;){Node<K,V>......
  • 本地生活服务平台源码是什么?成功攻略分享!
    作为当前多家互联网重点布局项目,本地生活已然成为众多创业者心目中理想的创业赛道,本地生活服务商的申请热度更是因此持续飙升。不过,由于各大官方平台对其本地生活服务商的要求日益严苛,让不少创业者在被拒之门外的同时,开始考虑通过本地生活服务平台源码部署这一途径完成入局。......
  • 想要数字人直播平台赚钱,前期源码部署要注意哪些要点?
    随着人工智能时代的到来,数字人直播的应用频率不断升高,展现巨大收益潜力的同时,也让不少想要通过数字人源码厂商搭建数字人直播平台的创业者产生好奇,并开始从各方面打听数字人直播平台怎么赚钱等相关问题的答案。本期,我们将以数字人源码厂商灰豚所搭建的数字人直播平台为例,对市......
  • 在Centos系统源码安装postgreSQL数据库及postGIS扩展
    本次安装的各版本如下postgresql-13.5.targeos-3.10.2gdal-3.4.1proj-8.2.1postgis-3.2.1一、安装postgreSQL1.1安装包下载地址选postgresql-13.5.tar.gz。使用工具将下载好的包传到服务器。解压,进入解压目录[root@localhostlocal]#yuminstallgccreadline-develzlib-d......
  • 抽奖拼团系统app源码
    抽奖拼团系统是一种集合了抽奖和拼团两种营销方式的平台,旨在通过用户的互动和分享,提高品牌曝光度,增加销售量,同时为用户提供优惠和娱乐体验。以下是对抽奖拼团系统功能的案例分析一、系统概述抽奖拼团系统结合了抽奖活动的趣味性和拼团活动的社交性,让用户通过参与抽奖和发起或参......