HomeKit 发表于 2025-8-21 18:30

如何调试外部构建的可执行文件?

本帖最后由 HomeKit 于 2025-8-20 23:22 编辑


我为STM32F429生成了一个ELF格式的可执行文件。这个可执行文件不是在STM32CubeIDE中创建的。但我想在STM32CubeIDE中调试它。如何在STM32CubeIDE中加载这个ELF文件并在目标板上调试该可执行文件?可以这样实现吗?

公羊子丹 发表于 2025-8-26 07:32

如果怀疑是系统包冲突,可以建个纯净的Debian容器跑CubeIDE测试。

周半梅 发表于 2025-8-26 07:32

可以的,你只要新建一个空工程,把芯片型号选对,然后在 Debug 配置里指定外部生成的 ELF 文件路径。

帛灿灿 发表于 2025-8-26 07:33

注意要保证编译时候带了调试信息,不然进 IDE 只能看汇编。

童雨竹 发表于 2025-8-26 07:34

如果你只是想烧录 ELF,也可以直接用 ST-LINK Utility 或者 CubeProgrammer。

万图 发表于 2025-8-26 07:35

要调试的话,工程里要有源文件路径,这样才能对上符号表,否则只能单步跟二进制。

Wordsworth 发表于 2025-8-26 07:37

建议在 Debug Configurations 里选 “Load Symbols” 和 “Load Executable”,分别填 ELF 路径。

Bblythe 发表于 2025-8-26 07:38

另外要确认编译选项和你 IDE 的工具链兼容,比如用 arm-none-eabi-gcc 编出来的。

Pulitzer 发表于 2025-8-26 07:39

CubeIDE 的调试器就是 GDB server,只要 ELF 有符号,它就能解析。

Uriah 发表于 2025-8-26 07:40

也可以只加载符号而不下载代码,这样可以调试已经烧录在板子里的程序。

Clyde011 发表于 2025-8-26 07:41

我之前在 F4 项目里就这样做过,效果和在 CubeIDE 里直接编译的没区别。

周半梅 发表于 2025-8-26 07:42

我试过,把 ELF 放到 Debug 目录下,修改 Debug 配置里的 C/C++ Application 指向那个 ELF 就能下板调试。

星辰大海不退缩 发表于 2025-8-28 23:05

在 Debug 配置里指定外部生成的 ELF 文件路径
页: [1]
查看完整版本: 如何调试外部构建的可执行文件?