2009-02-12 73 views
9

我在Windows上使用Eclipse来使用C​​ygwin的工具链编程C++。我想用它来调试好,但我的问题是这样的:如何让Eclipse为Cygwin的GDB提供一个可执行文件的posix路径?

  • 可执行调试是在工作区中的子文件夹(相当标准,我猜),但不实际的项目从中可执行文件构建。
  • Eclipse和GDB有不同的路径格式:Eclipse可以使用Windows路径,而GDB使用posix路径。 Eclipse知道D:\Path\To\Exe,而GDB需要/cygdrive/d/Path/To/Exe
  • Eclipse 坚持它可以找到要调试的可执行文件,当我在“调试配置...”对话框中输入路径时。 “调试”按钮被禁用,直到路径正确。
  • Eclipse在该特定输入框中似乎没有采取${workspace_loc}

是否有一些我不知道的隐藏选项?你之前有过这个问题吗?

什么我试过到目前为止

  • 强制Eclipse的传递路径I输入到GDB --- 没有工作。
  • 摆弄源查找路径和路径映射--- 没有工作,它真的只是源文件。
  • 为可执行文件所在的输出文件夹创建一个C++项目,所以我可以在项目中有一个相对路径 - exe文件 - 不起作用。

事情我还可以尝试

  • 使用.gdbinit文件丢弃由Eclipse中给出的路径和负载与POSIX路径的真正的可执行---试过了,但不是很辛苦。
  • 指定一个包装器作为GDB的参数---污染我的工作空间的根。
  • 提供我自己的插件来处理这种情况---增加另一段代码来维护另一种语言。

回答

0

升级到Eclipse Ganymede时,问题就消失了。

1

Cygwin的带有一个称为cygpath程序从窗口路径转换为UNIX,反之亦然,例如

$ cygpath -u 'c:\Users\Andrew\Documents\svn' 
/cygdrive/c/Users/Andrew/Documents/svn 

更多信息做一个cygpath --help

所以,你可能想编写一个GDB的包装器,将任何特定于Windows的路径转换为unix路径,然后调用真正的GDB。

13

在Eclipse的Preferences - > C/C++ - > Debug - >“Common Source Lookup Path”中添加新的路径映射。作为编译路径,你应该使用Unix的路径(例如/ cygdrive/c)作为本地系统路径,你应该像路径一样使用Windows(例如c :)。

+1

谢谢,pensamiento,我确实尝试过,但没有奏效。我的理解是,此路径映射不影响Eclipse将GDB作为可执行文件交给调试的路径。该设置的名称并不表示这应该起作用。 – 2009-03-04 08:59:55

+0

这对我有用。谢谢pensamiento! – 2010-01-18 17:33:23

相关问题