debugging 调试Eclipse CDT时出现“未命名源文件”错误

e5njpo68  于 2023-02-19  发布在  Eclipse
关注(0)|答案(8)|浏览(154)

我有一个带有共享库(动态加载)的项目,我试图调试它。我得到了以下错误消息:

No source file named /home/username/Code/path/to/project/MyFile.cpp.

在搜索了其他线程之后,我已经确定我是用-g编译的,并且调试配置的源路径选项卡上有相应的文件夹,奇怪的是它给出了正确的绝对路径:它引用的文件确实存在,所以我不明白为什么它认为它不存在。
有人知道该怎么办吗?

um6iljoc

um6iljoc1#

我刚刚遇到了同样的问题,尽管我的断点在可执行文件本身中,而不是在共享库中。为了解决这个问题,我必须打开“调试配置”,选择我的调试配置并调整以下设置:

  • 在底部,有一个链接“选择其他...”来选择创建进程启动器。单击该链接。勾选“使用配置特定设置”。选择**“标准创建进程启动器”**并按“确定”。
  • 转到“调试器”选项卡,并在选项卡顶部选择**“调试器:gdb/mi”**。可能会/可能不会产生影响的因素:在同一个选项卡上还有一个复选框“Use full file path to set breakpoints”(使用完整文件路径设置断点)-我尝试过这个选项,但它似乎并不影响我们观察到的问题(显然,我们的源路径已经是完整路径)。

对于共享库中的断点,您可能需要来自Debugging with eclipse cdt and gdbWhy does eclipse cdt ignore breakpoints的附加信息(特别是关于延迟断点)。

  • 注意:这是指EclipseKepler(4.3)和gdb 7.4。*
kb5ga3dv

kb5ga3dv2#

我也遇到过同样的问题,但在我的情况下是我的错。我的一些项目被设置为发布配置,调试器自然找不到源文件信息。

vxbzzdmp

vxbzzdmp3#

我遇到了同样的问题。我无法在共享库文件(.so)中设置断点,该文件在与我的程序不同的位置编译。
1.转至“调试配置”的“源”选项卡
1.添加编译目录(我使用了编译所有进程的主makefile的位置,而不是这个进程的makefile所在的位置)。
1.还可以单击“Subdirectories are also used for compilation”(我的子进程makefile是在主位置的子目录中编译的)
我还没有弄清楚如何对将来和过去的所有调试配置进行此更改,这样我就不必每次都添加此目录,但如果我弄清楚了,我将尝试稍后进行更新。

new9mtju

new9mtju4#

我遇到了同样的问题,但我的解决方案不同。打开项目“debug/src”+“release/src”目录,并确保没有[filename].d文件包含任何源文件的名称,这些文件可能已经更改了名称或不再存在。我有一个,删除了它,因为没有更多的错误。
因此,至少在我的例子中,我假定错误是由超出范围的对象造成的。

rlcwz9us

rlcwz9us5#

如果你同时有cygwin和mingw(或者其他的变体),就会发生这种情况。如果使用cygwin的gcc来编译源代码,那么在可执行文件中就会有cygwin路径。然后,如果调试器来自mingw,gdb将无法解释cygwin路径。解决这个问题最简单的方法是转到运行-〉调试配置-〉调试器,并设置cygwin gdb的完整路径(C:\cygwin 64\bin\gdb.exe)。这就为我解决了这个问题。

yeotifhr

yeotifhr6#

我按照@Andreas Fester的注解找到调试配置设置中的调试器选项卡,但找不到“调试器:gdb/mi”,但在源选项卡中,我删除了所有项目,并通过单击窗口右侧的“添加...”按钮添加了“绝对文件路径”。这对我解决这个问题很有帮助

9rygscc1

9rygscc17#

谢谢之前所有的建议。然而,对我来说,上面的建议都没有帮助。
在我的案例中,解决方案非常简单:再次编译代码,并确保放置断点的文件也被相应的新编译文件所替换。然后停止调试器并再次运行调试器,错误消息就会消失。就这样。您不需要在Eclipse调试器本身内部更改任何内容。我的Eclipse调试器版本是“Release 9.21”(Eclipse独立C/C++ GDB图形调试器)。
希望这对你也有帮助!

eaf3rand

eaf3rand8#

对于Makefile项目现有代码。步骤1检查编译所有源代码,使用-g -o 0步骤2使用gdbserver和arm-yourversion-gdb,它们将在您的sdk和gdb工具链中提供。

相关问题