如何解决"没有名为&#34的源文件; GDB / GDBServer错误

时间:2018-06-12 16:15:51

标签: gdb eclipse-cdt gdbserver

过去几天我一直在努力解决一个问题,我正在尝试在运行Linux的嵌入式ARM设备上远程调试应用程序。我的应用程序是用C ++编写的,并在SUSE Linux机器上交叉编译,然后部署到嵌入式ARM平台。该应用程序包含一个小型主程序,可调用一堆共享库。我一直在共享库中设置断点,但每当我开始调试会话时,我都会遇到可怕的“无源文件命名”错误。只是为了回顾:

  • 我正在运行Eclipse Neon.3 4.6.3,CDT 9.3.0
  • 我的所有源文件都是使用-g3
  • 编译的
  • 我使用gdbserver在Linux ARM机器上启动我的程序。
  • 然后我在Eclipse中启动调试会话并连接到gdbserver 在远程Linux盒子上。 (使用C ++远程应用程序 配置)

如果我的源文件名为/home/foo/bar.cpp并且我在该文件中设置了一个断点,那么Eclipse中的Debugger Console会显示消息

No source file name /home/foo/bar.cpp

当我启动调试器会话并连接到gdbserver时。但是,如果我现在在调试器控制台中键入“info sources”,我的源文件将显示在“已读入符号的源文件:”列表下。我还在Preference-> Debug-> GDB中启用了“显示GDB跟踪控制台”选项,它显示GDB尝试设置断点但是吐出“没有命名的源文件”错误:

001,518 26-break-insert -f /home/foo/bar.cpp:277
001,519 &"No source file named /home/foo/bar.cpp.\n"
001,519 26^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="<PENDING>",pending=\
/home/foo/bar.cpp:277",times="0",original-location="/ho\
me/ foo/bar.cpp:277"}
001,519 (gdb)

在控制台日志中进一步向下,它再次显示正在读取该源文件的符号。

我的第一个问题是谁在抱怨无法找到源文件? GDB还是GDBServer?我已经在Eclipse-&gt; Debug Configuration-&gt; Source选项卡中以几乎所有可用的方式将所有源路径设置为我的不同工作区项目,但无论我如何输入路径,它似乎没有任何区别(绝对路径,工作空间,项目等。)

任何帮助都非常感谢!

感谢。

0 个答案:

没有答案