我在
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的交叉调试版本.这里的问题是有关于如何实现这一点的信息很少.