如何让gdb在windows下使用Eclipse CDT(找不到源代码)

时间:2013-06-24 03:29:05

标签: eclipse cygwin

我安装了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:\用户\我\工作空间\ TEST1 \ test1.cc

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

或者,Mingw更容易吗?我遇到类似的问题,看到mingw存在,但构建失败,因为它找不到可执行文件。

5 个答案:

答案 0 :(得分:14)

以下是我如何使其发挥作用。

  1. 我转到Window ==>偏好==> C / C ++ ==>调试==>源查找路径
  2. 我添加路径映射:项目源
  3. 在左侧我放置了Cygwin期望的路径,即\ home \ MyName \ projects,在右侧我放置了Windows路径,即C:\ cygwin \ home \ MyName \ projects
  4. 然后当我调试它时,发现源文件很好。

答案 1 :(得分:11)

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

\cygdrive\c -> c:\

答案 2 :(得分:3)

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

假设您在C中安装Cygwin:但您的eclipse工作区位于D:那么您的安装中存在问题

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

int cpint = -1;
std::string fname="";
for ( int i = 1; i < argc && i<3; i++ ) {
 std::stringstream argss(argv[i]);

 // Check if the string is a decimal 
 // and only a decimal
 if( !(argss >> cpint) || !argss.eof()) {
   fname=argv[i];
 }
}
if(!fname.empty())
 std::cerr << "filename '" << fname "'" << std::endl;

if(cpint!=-1)
 std::cerr << "codepage: #" << cpint << std::endl;

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

因此,现在武装了这些知识就像PathM所说的那样

  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 ~
  $

这应该有效。 (这对我来说:)) 您也可以查看此常见问题解答: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

答案 3 :(得分:2)

我使用MinGW + CDT,它让我非常满意。我安装了很多次,从来没有任何分歧。配置不如你用cygwin做的那么多。下载Eclipse for C / C ++开发人员(可能是你做过的),让CDT(MinGW Tool Chain - &gt; gdb + gcc)直接运行。将您的\\MinGW\bin\目录设置为PATH,您应该好好去......

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

对于MinGW-64,现成的构建更难以找到。请参阅here

答案 4 :(得分:0)

在这里查看“Common Source Lookup Path”的设置:http://wyding.blogspot.dk/2009/04/setup-cygwin-toolchain-in-eclipse-cdt.html