如何在 Cortex-M 设备上的同一个 GDB 会话中调试引导加载程序和应用程序?

How can I debug a bootloader and application in the same GDB session on Cortex-M devices?

经典设置:有一个引导加载程序和应用程序,分别编译。如果一切正常,引导加载程序将跳转到应用程序。

我附加了一个探测器,运行 gdb 服务器,使用引导加载程序二进制文件启动 gdb。如果我 运行 file application.elf 那么我会丢失引导加载程序的符号。

我如何通过一次 运行 一条指令来观察切换,以及应用程序在跳转后恰好做了什么?

通过逐步跟踪 PC 并使用 addr2line 对每个步骤进行解码,使用 SWD 指挥官可能是可行的,但我希望有更正确的方法。

您可以使用以下方式加载符号:

gdb add-symbol-file