当前位置: 首页 > news >正文

ardupilot开发 --- gdb 篇

环境

win11 + vscode 1.81.0
wsl2
ardupilot

利用gdb工具在vsCode中实现 Ardupilot SITL的断点调试

优点:可在vsCode中实现断点调试。
参考文献:https://ardupilot.org/dev/docs/debugging-with-gdb-using-vscode.html

  • 安装gdb工具
    打开wsl,进入ardupilot目录
    使用vscode中的终端安装: bash sudo apt install gdb

在这里插入图片描述

  • 设置 SITL:./waf configure --debug
  • 设置 VSCode Debugger
    Run ~> Add Configuration ~> 编辑launch.json:
    "configurations": [{"name": "(gdb) Attach Copter","type": "cppdbg","request": "attach","program": "${workspaceFolder}/build/sitl/bin/arducopter","MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "Set Disassembly Flavor to Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]},
  • 运行仿真SITL:sim_vehicle.py -v ArduCopter -f quad --console --map -D
  • 将代码和运行中的二进制实例进行 attaching:
    Run ~> Start Debugging ~> 选择对应的实例,如下图:
    在这里插入图片描述
  • 这样就可以进行断点调试了:
    在这里插入图片描述
  • 可以利用断点调试查看飞控逻辑的控制流、信息流、函数调用逻辑等等…
http://www.lryc.cn/news/216404.html

相关文章:

  • 在Vue项目中定义全局变量
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • 大促期间如何监测竞品数据
  • Linux yum 没有可用软件包 fping。 错误:无须任何处理 的解决办法
  • 人工智能与脑机接口:开启人机融合的新时代
  • 【多线程面试题二十二】、 说说你对读写锁的了解
  • Panda3d 相机控制
  • Linux(CentOS)安装MySQL教程
  • 使用 OpenSSL 工具撰写 Bash 脚本进行密码明文的加密与解密
  • uniapp之actionsheet 自定义组件
  • 在nodejs中使用Mongoose和MongoDB实现curd操作
  • 10.28 校招 实习 内推 面经
  • Azure 机器学习 - 使用无代码 AutoML 训练分类模型
  • 【调试技术】用户态查看PEB和TEB
  • 如何搭建一个Spring MVC和Vue3的应用程序
  • CSS3设计动画样式
  • AtCoder abc 144
  • 【开题报告】基于SpringBoot的医美在线预约系统的设计与实现
  • AutoGen agent使用;调用本地LLM
  • Docker安装matomo
  • 副对角线以上和以下都为0的行列式求解
  • DSP开发例程(4): logbuf_print_to_uart
  • 计算机毕业设计选题推荐-超市售货微信小程序/安卓APP-项目实战
  • Azure 机器学习 - 使用 Visual Studio Code训练图像分类 TensorFlow 模型
  • Vue 创建自定义 ref 函数
  • [2016-2018]phpstudy的exp制作
  • 服务器数据恢复—Zfs文件系统下文件被误删除的如何恢复数据?
  • 关于嵌入式rtthread系统与单片机芯片
  • 在Ubuntu上安装Redis并学习使用get、set和keys命令
  • Ubuntu更换镜像源