首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用gdb和gdbserver从Windows远程调试Linux进程: Windows端到底需要什么?

用gdb和gdbserver从Windows远程调试Linux进程: Windows端到底需要什么?
EN

Stack Overflow用户
提问于 2010-08-17 12:46:38
回答 6查看 18.9K关注 0票数 23

我正在Windows上运行Eclipse,以开发在远程Linux系统上构建和测试的C代码。目前,该代码从未在Windows上编译过。

我能够使用CDT在gdbserver下在Linux目标上开始远程进程,然后从Windows主机附加gdb。但是,gdb立即失败,错误如下:

代码语言:javascript
复制
warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration
of GDB.  Attempting to continue with the default i386 settings.
[...]
Remote 'g' packet reply is too long: 74afe9bff0aee9bf02000000f4af4a00a0aee9bf[...]

两个Linux系统之间的调试工作正常,所以很明显,我在Windows主机端做了一些错误的事情。我的具体问题是:

  • gdb的Cygwin版本是否足以调试远程Linux进程,还是需要一个特殊的跨gdb才能在Windows上运行并与Linux进程一起工作?如果是这样的话,我能在哪里找到这样的数据库呢?
  • 使用gdb进行远程调试需要在主机系统上使用符号。实现这一目标的最简单方法是什么?我是否可以将Linux目标上的构建所产生的符号复制到Windows主机上,或者必须在Windows上实现完整的构建?是否有一种方法可以避免这种要求,使我只能在目标上提供符号?

谢谢,

-R

更多信息: 紧急常见问题提供了一些提示,但不幸的是,我仍然被阻塞。FAQ描述了两种方法:

  • 通过ssh在远程系统上启动gdb客户端。这里的问题是CDT调试启动程序中的某些字段绑定到本地系统(项目路径、可执行路径等)。
  • 构建/获取支持从Windows调试Linux进程的gdb交叉调试版本。这里的问题是,关于如何实现这一点的信息很少。

我也提高了CDT论坛上的这个问题

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-03-10 17:32:03

使用gcc/gdb建立交叉编译或交叉调试环境是一个非常困难的问题,它几乎不是最有效的解决方案。将linux放在您的windows机器上,并在那里进行调试,所做的工作要少得多。如果您真的需要调试“那边”,我建议您只使用ssh-ing并使用命令行gdb。如果您不能在那里拥有源代码,那么从您控制的linux中进行远程调试将是可行的。

票数 0
EN

Stack Overflow用户

发布于 2017-12-15 11:34:41

只需重建gdb与目标平台支持。你可以用Cygwin来做这个。RHEL目标平台示例:

代码语言:javascript
复制
> wget http://ftp.gnu.org/gnu/gdb/gdb-<ver>.tar.xz
> tar -xJvf gdb-<ver>.tar.xz
> mkdir -p gdb-<ver>/build/x86_64-redhat-linux-gnu
> cd gdb-<ver>/build/x86_64-redhat-linux-gnu
> ../../configure --target=x86_64-redhat-linux-gnu
> make && make install
> x86_64-redhat-linux-gnu-gdb.exe --version

不要忘记在此之后重新配置您的工具链。要获得目标配置名称,可以使用:

代码语言:javascript
复制
> echo ${BASH_VERSINFO[5]}
票数 10
EN

Stack Overflow用户

发布于 2015-07-28 14:45:55

现在有一个插件http://marketplace.eclipse.org/content/direct-remote-c-debugging

它允许您通过ssh远程在服务器上启动gdb。它关注路径映射和其他事情。

您不需要gdb服务器远程运行

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3502509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档