代码之家  ›  专栏  ›  技术社区  ›  Carl Seleborg

如何让Eclipse给cygwin的gdb一个到可执行文件的posix路径?

  •  9
  • Carl Seleborg  · 技术社区  · 16 年前

    我在Windows上使用Eclipse来使用CygWin的工具链编程C++。我也希望将其用于调试,但我的问题是:

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

    有什么我不知道的隐藏选项吗?你以前有过这个问题吗?

    到目前为止我试过的

    • 强制Eclipse将路径I输入传递到gdb--- 没有工作。
    • 处理源查找路径和路径映射--- 不工作 ,它只适用于源文件。
    • 为可执行文件的输出文件夹创建一个C++项目,这样我就可以在项目中有一个到EXE的相对路径。 没有工作。

    我仍然可以尝试的东西

    • 使用 .gdbinit 文件来丢弃Eclipse给出的路径,并用posix路径加载真正的可执行文件---尝试过,但不是很难。
    • 指定一个包装器作为gdb的参数---污染我工作区的根目录。
    • 提供我自己的插件来处理这个问题---添加另一段代码来用另一种语言维护。
    3 回复  |  直到 15 年前
        1
  •  13
  •   pensamiento    16 年前

    在Eclipse中的首选项-gt;C/C++>调试-gt;“公共源查找路径”中添加新的路径映射。作为编译路径,您应该使用类Unix路径(例如/cygDrive/c),作为本地系统路径,您应该使用类Windows路径(例如c:)。

        2
  •  1
  •   andrewdotn    16 年前

    Cygwin附带了一个名为 cygpath 要将路径从Windows转换为Unix,反之亦然, 例如

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

    做一个 cygpath --help 更多信息。

    因此,您可能希望为gdb编写一个包装器,将任何特定于Windows的路径转换为unix路径,然后调用真正的gdb。

        3
  •  0
  •   Carl Seleborg    15 年前

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