我能够使用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进程,或者我需要特殊的交叉gdb才能在Windows上运行并与Linux进程一起工作?如果需要,有哪里可以获取这样的gdb?
使用gdb进行远程调试需要在主机系统上可用符号。最简单的实现方式是什么?我只需将Linux目标构建产生的符号复制到Windows主机上吗?还是必须在Windows上进行完整构建?是否有避免此要求的方法,例如仅在目标上提供符号?
谢谢,
-R
更多信息: RSE FAQ 提供了一些指针,但不幸的是我仍然被阻止。该FAQ描述了两种方法:
- 通过ssh在远程系统上启动gdb客户端。问题在于CDT调试器启动程序中的某些字段与本地系统(项目路径、可执行文件路径等)相关。
- 构建/获取支持从Windows调试Linux进程的交叉调试版本的gdb。问题在于没有关于如何实现这一点的信息。
我还在CDT论坛上提出了此问题。