我正在使用 docker 中的 gcc 为 arm 控制器构建我的 c/c++ 应用程序。与 .hex 和 .bin 文件一起生成的还有 .elf 文件。一旦生成,它们都会从容器中导出到主机。现在我想用 openocd、arm-none-eabi-gdb 和 eclipse cdt 调试应用程序。我能够在目标板上启动调试会话,但是当我停止调试器(或者它在主启动时停止)时,它无法找到要显示的源文件:
Can't find a source file at "/usr/src/Testbench/LIBS/Shell/shell.c"
这里的路径是docker容器中的构建项目之一,与现在所有文件所在主机上的新调试项目无关。我试图在 Eclipse 中编辑源查找路径,但没有成功,我可以找到该文件,然后它只适用于该文件。也指定文件夹不起作用。无论如何,始终为项目中的所有文件/文件夹手动执行此操作不是一种选择。
解决方案应该是“脚本化的”,因为所有这些都是 CI/devops 概念的一部分。
似乎“错误”的路径是硬编码在 elf 文件中的。是否有(脚本)方法来更改该路径以匹配实际项目位置,以便 eclipse 和 gdb 按预期工作,并且开发人员可以在调试时看到调试信息?
可能它应该适用于 Linux 和 Windows ;-)
在此先感谢您的帮助
马丁