【问题标题】:How to debug a linux C++ program from Windows with Eclipse?如何使用 Eclipse 从 Windows 调试 linux C++ 程序?
【发布时间】:2012-02-09 16:47:23
【问题描述】:

我使用无头(即无屏幕)远程 ubuntu 服务器 x64 来开发 C++ 应用程序(也没有 UI)。

我想方便地(像 IDE,而不是命令行)从 windows (7/64) 调试这个程序,如果可能的话,使用 Eclipse。我在两台机器上都有 Windows 共享和完全 root 访问权限。

到目前为止,我听说过两种解决方案:

  1. 远程 gdb
  2. 远程 X 服务器

我研究了解决方案 1:构建了一个交叉 gdb,在 windows 上复制了我的程序和库。我可以从 cygwin 命令行远程 gdb,但不能从 eclipse(卡在“正在启动... 85%”,没有错误消息或日志)

我还研究过解决方案 2:安装 xauth,设置 X 转发,在我的 windows 上安装 xming,在 linux 机器上设置 DISPLAY。但是没有任何效果“无法打开 DISPLAY xxx”,并且没有简单的故障排除。

在谷歌上搜索这些问题时,我只发现过时的页面或不同的问题。

有人做过吗?您能否分享有关如何从 Windows 远程调试 C++ linux 应用程序的建议或新指针?

【问题讨论】:

  • 你不能ssh进入机器并在那里启动gdb吗?
  • 将 Emacs 与 tramp 插件一起使用?
  • @PlasmaHH 当然,我对 linux 服务器拥有完全的 root 访问权限。我想要方便的 graphical 调试,而不是命令行 gdb。
  • 我想不出任何方法可以使用 Windows GUI 调试 ubuntu 软件.....
  • @Offirmo:X 转发应该可以工作。您能否发布您为解决方案 2 所做的工作?

标签: c++ linux debugging gdb


【解决方案1】:

我建议在你的 Windows 机器上安装一个X11 服务器(例如Xming 可能吗?)并使用一些 X11 客户端应用程序来执行ssh -X(如emacsddd 如果需要,xterm ) 在您的 Linux 服务器上。不要使用像 Eclipse 这样复杂的东西。您可以只使用emacs(远程在Linux服务器上,在Windows桌面X11服务器上显示)...

一旦emacs 运行良好(在远程Linux 服务器上运行,在Windows 桌面X11 服务器上显示),您就可以在其中运行gdb

要使ssh -X 正常工作,您需要对其进行适当的配置。也许你忘记了那一步。要对其进行测试,只需使用ssh -X yourlinuxhost xterm,然后进行配置直到该步骤生效。

当然,您也可以在笔记本电脑或台式机上安装 Linux,也许在 Windows 上方的虚拟机中。

注意。我从未使用过 Windows,但我知道有一些 X11 服务器适用于它。

【讨论】:

  • 现在可以使用了。我唯一缺少的是告诉 xming 使用 -ac 接受每个人的连接。我能够运行完整的 Eclipse 并调试我的程序。谢谢!
  • 我不确定您是否需要-ac(我猜这与Unix上的xhost +相同)。也许一些ssh(在Windows 上又名putty)技巧可以做......我不知道Windows 上的哪个技巧。
【解决方案2】:

有一个 Eclipse 插件RSE(远程系统资源管理器),它几乎可以满足您的期望。代码库可以在linux服务器,eclipses使用telnet/ssh登录。可以在服务器上再次执行,使用原生gdb进行调试。

【讨论】:

  • Emacs 也是如此,而且这个特性在 Eclipse 出现之前就已经存在了。
  • 这正是我使用的。它不起作用。启动调试配置时停留在 85%。没有错误信息,没有日志。有教程链接吗?
【解决方案3】:

您可以使用以下简单的 Eclipse 插件。

http://marketplace.eclipse.org/content/direct-remote-c-debugging

它只需要与服务器的 ssh 连接,它关心其他任何事情

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 2017-09-12
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    相关资源
    最近更新 更多