# 使用 GDB 调试
GNU 调试器(GDB) (打开新窗口) 的形式与编译器工具链一起安装。 arm-none-eabi-gdb
二进制。调试器读取 ELF 文件中的调试符号,以了解 PX4 固件的静态和动态内存布局。要访问 PX4 自动驾驶仪微控制器,它需要连接一个 远程目标 (打开新窗口)由一个 SWD 调试探针.
信息流是这样的
开发人员 <=> GDB <=> GDB 服务器 <=> 调试探针 <=> SWD <=> PX4 自动驾驶仪。
# 快速入门
要启动调试会话,通常需要
- 需要专门的 SWD 调试探针.
- 查找并连接到 SWD 调试端口.您可能需要 调试适配器.
- 配置并启动调试探针,创建 GDB 服务器。
- 启动 GDB 并作为远程目标连接到 GDB 服务器。
- 交互式调试固件
有关如何设置调试连接的详细信息,请参阅调试探针文档:
- 世纪佳缘 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 (打开新窗口).