如何让 Eclipse 为 Cygwin 的 GDB 提供可执行文件的 posix 路径?

发布于 2024-07-13 17:28:25 字数 993 浏览 7 评论 0原文

我正在 Windows 上使用 Eclipse 使用 Cygwin 的工具链对 C++ 进行编程。 我也想用它进行调试,但我的问题如下:

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

是否有一些我不知道的隐藏选项? 您以前遇到过这个问题吗?

到目前为止我已经尝试过

  • 强制 Eclipse 将我输入的路径传递给 GDB --- 不起作用。
  • 摆弄源查找路径和路径映射 --- 不起作用,它实际上仅适用于源文件。
  • 为可执行文件所在的输出文件夹创建一个 C++ 项目,这样我就可以拥有项目内 exe 的相对路径 --- 不起作用。

我仍然可以尝试

  • 使用 .gdbinit 文件来放弃 Eclipse 给出的路径并使用 posix 路径加载真正的可执行文件 --- 尝试过,但不是很难。
  • 指定一个包装器作为 GDB 的参数 --- 污染我的工作空间的根目录。
  • 提供我自己的插件来处理这种情况 --- 添加另一段代码以另一种语言进行维护。

I'm using Eclipse on Windows to program C++ using Cygwin's toolchain. I would like to use it for debugging as well, but my problem is the following:

  • The executable to debug is in a sub-folder of the workspace (pretty standard, I guess) but not of the actual Project from which the executable is built.
  • Eclipse and GDB have different path formats: Eclipse works with Windows paths, whereas GDB works with posix paths. Eclipse knows D:\Path\To\Exe whereas GDB needs /cygdrive/d/Path/To/Exe.
  • Eclipse insists that it can find the executable to debug when I enter the path in the "Debug configurations..." dialog. The "Debug" button is disabled until the path is correct.
  • Eclipse does not seem to take ${workspace_loc} in that particular input box.

Is there some hidden option I don't know about? Have you had the problem before?

What I've tried so far

  • Forcing Eclipse to pass the path I input to GDB --- did not work.
  • Fiddling with source lookup paths and path mappings --- did not work, it's really just for source files.
  • Creating a C++ Project for the output folder where the executable is, so I could have a relative path to the exe inside the project --- did not work.

Things I could still try

  • Use the .gdbinit file to discard the path given by Eclipse and load the real executable with posix paths --- tried that, but not very hard.
  • Specify a wrapper as argument to GDB --- pollutes the root of my workspace.
  • Provide my own plug-in to deal with the case --- adds another piece of code to maintain in another language.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜尕妞 2024-07-20 17:28:25

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

In Eclipse in Preferences->C/C++->Debug->"Common Source Lookup Path" add new path mapping. As compilation path you should use Unix like path (e.g. /cygdrive/c), as local system path you should use Windows like path (e.g. c:).

海之角 2024-07-20 17:28:25

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

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

执行 cygpath --help 获取更多信息。

因此,您可能想要为 GDB 编写一个包装器,将任何特定于 Windows 的路径转换为 ​​Unix 路径,然后调用真正的 GDB。

Cygwin comes with a program called cygpath to translate paths from windows to unix and vice-versa, e.g.

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

do a cygpath --help for more info.

So you probably want to write a wrapper for GDB that translates any windows-specific paths to unix paths, and then invokes the real GDB.

酒几许 2024-07-20 17:28:25

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

The problem went away when upgrading to Eclipse Ganymede.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文