使用gdb和gdbserver从Windows远程调试Linux进程:Windows侧需要什么?

前端之家收集整理的这篇文章主要介绍了使用gdb和gdbserver从Windows远程调试Linux进程:Windows侧需要什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 Windows上运行 Eclipse CDT来开发C&在远程 Linux系统上进行测试.目前,代码从未在Windows上编译.

我可以使用CDT在gdbserver下的Linux目标上开始远程进程,然后从Windows主机附加gdb.但是,gdb立即失败,出现如下错误

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主机端做错了事情.我的具体问题是:

> Cygwin版本的gdb足以调试远程Linux进程,还是需要一个特殊的cross-gdb才能在Windows上运行并使用Linux进程?如果是这样,有没有办法抓住这样一个gdb?
>使用gdb进行远程调试需要主机系统上的符号可用.最简单的方法是什么?我可以将Linux目标上的构建产生的符号复制到Windows主机,还是必须在Windows上进行完整的构建?有没有办法避免这个要求,这样我只能在目标上提供符号?

谢谢,

-R

更多信息:RSE FAQ提供了一些指针,但不幸的是我仍然被阻止.常见问题解答描述了两种方法

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

我也提高了this issue on the CDT forum.

使用gcc / gdb设置交叉编译或交叉调试环境是一个非常困难的问题,它几乎不是最有效的解决方案.在你的Windows框上放置一个linux虚拟机,并在那里进行调试将会减少很多的工作.如果你需要,真的,调试’在那里’,我建议只是ssh-ing和使用命令行gdb.如果您无法使用源代码,则可以在您的控制下从一个linux VM进行远程调试.

猜你在找的Windows相关文章