【问题标题】:How to get gdb working with Eclipse CDT under windows (fails to find source code)如何让gdb在windows下与Eclipse CDT一起工作(找不到源代码)
【发布时间】:2022-01-27 18:06:57
【问题描述】:

我安装了cygwin(最新的1.7.xx?),然后安装了eclipse cdt(Juno)。

当我尝试构建一个 hello world 项目时,尽管 eclipse 识别出 cygwin 已安装,但它没有工作。

于是我手动将c:\cygwin\bin添加到路径中,这样就找到了cygwin中的所有可执行文件,包括g++、make ld等。

现在eclipse可以编译项目了,但是调试的时候gdb启动了,找不到源代码。它声称它找不到:

/cygdrive/c/users/me/workspace/test1/test1.cc . 即使那正是它所在的地方。好像cygwin的目录系统不起作用。

我可以从以下位置手动加载源代码:

c:\users\me\workspace\test1\test1.cc

并且调试器可以工作,但是下次我开始一个新项目时,我必须再做一次。 如何指示 eclipse/cygwin 组合正确查找源代码?

另外,Mingw 更容易吗?我在 eclipse 中遇到了类似的问题,看到 mingw 在那里,但是构建失败,因为它找不到可执行文件。

【问题讨论】:

  • 您可能需要重新表述问题以显示您想问的真正问题。
  • 这太荒谬了。问题是如何让 eclipse 与 cygwin 正确匹配,以便调试器可以正常工作,而无需手动告诉它每次源文件的位置。从阅读我的问题来看,这对我来说似乎很明显。如果 Mingw 是一个选项,它是如何工作的,因为我遇到过类似的问题。

标签: eclipse cygwin


【解决方案1】:

这是我如何使它工作的。

  1. 我转到窗口 ==> 首选项 ==> C/C++ ==> 调试 ==> 源查找路径
  2. 我添加路径映射:项目源
  3. 我在左侧放置了 Cygwin 期望的路径,即 \home\MyName\projects,在右侧放置了 Windows 路径,即 C:\cygwin\home\MyName\projects

然后当我调试它发现源文件正常。

【讨论】:

  • 有没有办法通过 .project 文件与其他人共享此设置?
  • @Danijel,是的。考虑到所有项目都位于 Eclipse 工作区文件夹中,只需将 Cygwin 的 Eclipse 工作区路径映射到 Windows Eclipse 工作区路径即可。该路径中的所有项目都将正确解析源文件。
【解决方案2】:

转到 Windows->首选项->C/C++ -> 调试 -> 源查找路径。添加以下“路径映射”。

\cygdrive\c -> c:\

【讨论】:

    【解决方案3】:

    虽然上面给出了很好的答案,但有时它仍然可能无法解决问题唷!!!!

    假设你在 C: 中安装 Cygwin,但你的 Eclipse 工作区在 D: 中,那么你的安装有问题

    您应该做的就是,打开 cygwing shell 并输入“mount”以获取以下内容:

      Ritvika@Ashutosh ~
      $ ls
    
      Ritvika@Ashutosh ~
      $ mount
      C:/cygwin64/bin on /usr/bin type ntfs (binary,auto)
      C:/cygwin64/lib on /usr/lib type ntfs (binary,auto)
      C:/cygwin64 on / type ntfs (binary,auto)
      C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
      D: on /cygdrive/d type ntfs (binary,posix=0,user,noumount,auto)
    
      Ritvika@Ashutosh ~
      $
    

    这里我的项目都在 D:\ECWorkSpace 下,所以我的映射需要存在 在 Eclipse 中为: /cygdrive/d d:/

    因此,现在有了这些知识,就按照 PathM 所说的去做

     1. goto Window ==> Preferences ==> C/C++ ==> Debug ==> Source Lookup Path
     2. Add a Path Mapping: Project Source
     3. On the left side put "cygdrive\d",  & on the right put : "D:\"
    

    这应该可以。 (它对我有用:)) 您也可以查看此常见问题解答:https://wiki.eclipse.org/CDT/User/FAQ#I.27m_using_cygwin_and_when_launching_the_debugger.2C_it_complains_that_it_can.27t_find_the_source_file

    【讨论】:

      【解决方案4】:

      我使用 MinGW + CDT,它让我非常满意。我安装了很多次,从来没有任何分歧。没有比你用 cygwin 做的更多的配置。下载面向 C/C++ 开发人员的 Eclipse(可能是您所做的)以获得 CDT(MinGW 工具链 -> gdb + gcc)直接运行。将您的 \\MinGW\bin\ 目录设置到您的 PATH 中,您应该一切顺利...

      注意:与 Cygwin 一样,MinGW 提供了类似 Linux 的 Shell。

      对于 MinGW-64,现成的构建有点难以找到。见here

      【讨论】:

      • 仍然想知道如何解决 cygwin 问题,但目前 mingw 的安装程序已经完成了这项工作。
      • 忘了告诉你,对于完整的 64 位选项(-m64,...),你需要MinGW-64。请参阅我的答案底部的链接。
      【解决方案5】:

      在此处查看“公共源查找路径”的设置:http://wyding.blogspot.dk/2009/04/setup-cygwin-toolchain-in-eclipse-cdt.html

      【讨论】:

        【解决方案6】:

        我用 msys gdb 替换了 gdb。例如:

        当前配置:

        ... Application Configuration .. Debug .. Debug
        
        GDB Debugger gdb
        

        GDB Debugger path to msys gdb (like for example c:\msys\bin\gdb.exe
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-02-02
          • 1970-01-01
          • 1970-01-01
          • 2017-04-09
          • 2020-01-15
          • 2019-01-17
          • 1970-01-01
          • 2013-07-30
          相关资源
          最近更新 更多