Debugging &引用;没有名为“的源文件”;调试Eclipse CDT时出错

Debugging &引用;没有名为“的源文件”;调试Eclipse CDT时出错,debugging,gdb,eclipse-cdt,Debugging,Gdb,Eclipse Cdt,我有一个带有共享库(动态加载)的项目,我正在尝试调试它。我收到以下错误消息: No source file named /home/username/Code/path/to/project/MyFile.cpp. 在搜索了其他线程之后,我确保使用-g进行编译,并且调试配置的源路径选项卡上有相应的文件夹。奇怪的是它给出了正确的绝对路径:它引用的文件确实存在,所以我不明白为什么它认为它不存在 有人知道该怎么办吗?我遇到了同样的问题,尽管我的断点在可执行文件本身,而不是在共享库中。为了解决这个问题

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

No source file named /home/username/Code/path/to/project/MyFile.cpp.
在搜索了其他线程之后,我确保使用-g进行编译,并且调试配置的源路径选项卡上有相应的文件夹。奇怪的是它给出了正确的绝对路径:它引用的文件确实存在,所以我不明白为什么它认为它不存在


有人知道该怎么办吗?

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

  • 在底部,有一个链接“选择其他…”来选择创建流程启动器。点击链接。勾选“使用配置特定设置”。选择“标准创建流程启动器”,然后按“确定”
  • 转到“调试器”选项卡,并在选项卡顶部选择“调试器:gdb/mi”。可能/可能没有区别:在同一个选项卡上还有一个复选框“使用完整文件路径设置断点”-我使用了这个选项,但它似乎不会影响我们观察到的问题(显然,我们的源路径已经是完整路径)
对于共享库中的断点,您可能需要来自和的其他信息(特别是关于延迟断点的信息)


注意:这是指EclipseKepler(4.3)和GDB7.4。我有同样的问题,但我的解决方案不同。打开项目“debug/src”+“release/src”目录,并确保没有[filename].d文件包含可能已更改名称或不再存在的任何源文件的名称。我有一个,删除了它,因为没有更多的错误


因此,我认为,至少在我的情况下,错误是由超出范围的对象创建的。

我也有同样的问题,但在我的情况下,这是我的错。我的一些项目被设置为Release configuration,调试器自然无法找到源文件信息。

我也有同样的问题。我无法在共享库文件(.so)中设置断点,该文件是在与我的程序不同的位置编译的。要解决此问题,请执行以下操作:

  • 转到调试配置的“源”选项卡
  • 添加一个编译目录(我使用了编译所有进程的主makefile的位置,而不是这个进程的makefile所在的位置)
  • 同时单击“子目录也用于编译”(我的子流程makefile在主位置的子目录中编译)

  • 我还没有弄清楚如何对将来和过去的所有调试配置进行此更改,这样我就不必每次都添加此目录,但如果我弄清楚了,我将稍后尝试更新。

    对于Makefile项目现有代码。 步骤1使用-g-o0检查并编译所有源代码
    步骤2使用gdbserver和arm版本的gdb,这将在sdk和gdb工具链中提供。

    如果同时使用cygwin和mingw(或其他变体),则可能会发生这种情况。如果使用cygwin中的gcc编译源代码,那么可执行文件中将包含cygwin路径。然后,如果调试器来自mingw,gdb将无法解释cygwin路径。解决此问题的最简单方法是转到Run->Debug Configurations->Debugger并将完整路径设置为cygwin gdb(C:\cygwin64\bin\gdb.exe)。这为我解决了问题。

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

    回答得不错,我认为它是正确的。您可能还想看看这个问题/。回答:在我的情况下,在徒劳地尝试了上述所有步骤之后,安装了更新版本的gdb(7.4)解决了这个问题。我也遇到了同样的问题。我忘了使用
    -DCMAKE\u BUILD\u TYPE=Debug
    配置我的CMake项目。