首页 > 解决方案 > Eclipse 在调试期间无法找到源代码

问题描述

我正在使用 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 ;-)

在此先感谢您的帮助

马丁

标签: eclipsedebugginggdbelfdebug-information

解决方案


现在它起作用了!在 eclipse 中的 gdb 命令中的调试配置中,我添加了:

set substitute-path /usr/src/ ${workspace_loc}

然后我不得不去eclipse中的源查找路径并删除所有内容。


推荐阅读