使用Eclipse CDT/RSE/RDT远程调试C应用程序

我正在与Eclipse(在Windows中)进行战斗,使其连接到我的Linux盒子,并远程编译和调试C代码.

我有工作:

>安装CDT / RSE / RDT(Eclipse Juno,CDT 8.1.2,PTP(RDT)6.0.4,RSE 3.4)
> rdt-server在Linux上运行(perl ./daemon.pl 4075)
>创建本地C项目(基于Makefile)
>编译和调试本地C项目
>创建远程项目(使用“rdt-server”的“Linux”连接)
>编译远程项目(基于Makefile)

我可以做的一些手工事情(没有Eclipse):

>“远程”调试我编译的项目:ssh mybox’cd / path / to / project; gdb main’
>启动一个gdbserver:ssh mybox’cd / path / to / project; gdbserver fqdn:10000 main’

什么不工作:在Eclipse中调试

>通过“C应用程序”调试错误:程序未指定(因为我没有本地代码)
>通过“C remote”进行调试错误:程序未指定(需要本地代码吗?)
>通过“C attach”进行调试(Debugger:“gdbserver”)

> gdbserver在linuxbox上运行
gdb无法与gdbserver通讯(cygwin gdb 7.5,linux gdb / gdbserver 7.3);警告:架构拒绝了目标提供的描述.

>通过“C attach”调试(Debugger:“gdb”)将尝试附加到我的Windows进程.

其他可能导致问题的事情:

>我正在使用MSYS / Git提供的ssh二进制文件(不在PATH上)
> Cygwin不在PATH上

我真的想在Eclipse中为我的C项目做远程调试.
你有什么建议如何从这里开始?

最佳答案

“debug via “C++ remote” Error: Program not specified (do I need local code for that?)”

是的,因为符号是从本地代码副本加载的.

在这种启动配置的调试器选项卡中,您将找到远程服务器和端口的设置.使用您在启动gdbserver时指定的机器名称和端口.

AFAIK这样还是不行,因为在本地Windows机器上运行的gdb不支持调试linux程序.您将需要一个交叉构建的gdb(配置并使用host = mingw-or-something和target = linux构建).

转载注明原文:使用Eclipse CDT/RSE/RDT远程调试C应用程序 - 代码日志