使用 GDB 调试
GNU 调试器(GDB) 的形式与编译器工具链一起安装。 arm-none-eabi-gdb
二进制。调试器读取 ELF 文件中的调试符号,以了解 PX4 固件的静态和动态内存布局。要访问 PX4 自动驾驶仪微控制器,它需要连接一个 远程目标由一个 SWD 调试探针.
信息流是这样的
吁
开发人员 <;=>; GDB <;=>; GDB 服务器 <;=>; 调试 探头 <;=>; SWD <;=>; PX4 自动驾驶仪
快速入门
要启动调试会话,通常需要
有关如何设置调试连接的详细信息,请参阅调试探针文档:
- 世纪佳缘 J-Link:商用探头,无内置串行控制台,需要适配器。
- 黑魔法探针GDB:集成 GDB 服务器和串行控制台,需要适配器。
- STLink:性价比最高,集成串行控制台,适配器必须焊接。
我们建议使用带有 Pixhawk 调试适配器的 J-Link 或带有焊接定制电缆的 STLinkv3-MINIE。
连接后,您可以使用常用的 GDB 命令,如
继续
继续执行程序运行
从头开始追溯
查看回溯break somewhere.cpp:123
来设置断点删除某处.cpp:123
再次移除当地信息
打印本地变量信息登记
打印寄存器
咨询 GDB 文档 了解更多详情。
TIP
为了避免每次都在 GDB 中键入所有连接命令,可以将它们写入 ~/.gdbinit
.
下一步工作
现在,您已将飞行控制器连接到 SWD 调试探针!
以下主题将介绍如何启动目标调试:
嵌入式调试工具
嵌入式调试工具 在用户友好的 Python 软件包中将多个软件和硬件调试工具连接在一起,从而更轻松地实现 ARM Cortex-M 微控制器和相关设备的高级用例。
该库可协调硬件调试和跟踪探头、调试器、逻辑分析仪和波形发生器的启动和配置,并提供分析工具、转换器和插件,以便在执行期间或之后深入了解软件和硬件状态。
emdbg
图书馆包含 许多有用的 GDB 插件 使调试 PX4 变得更容易。它还提供了以下工具 实时剖析 PX4.