如何使用Eclipse CDT进行远程调试而不使用gdbserver?

时间:2008-09-17 08:42:32

标签: c++ eclipse eclipse-cdt remote-debugging aix

我们在Windows上使用Eclipse CDT 5 C ++ IDE在远程AIX主机上开发C ++应用程序。

Eclipse CDT能够使用gdbserver执行远程调试。不幸的是,AIX上不支持gdbserver。

是否有人熟悉使用Eclipse CDT而不使用gdbserver进行远程调试的方法?也许使用SSH shell连接到gdb?

3 个答案:

答案 0 :(得分:11)

最后我现在无论如何都得到了远程运行的gdb。在任务栏上的Bug符号中,我进行了调试配置 - GDB硬件调试。

在主C / C ++应用程序中,我在可执行文件(X:\abin\vlmi9506)的Samba共享上设置完整路径。我还在项目的X:\abin上设置了一个链接文件夹。然后我在GDB安装程序中修改了我的批处理脚本。它不是直接在plink-session中调用gdb而是直接调用unix-shell-script来打开gdb。通过这个,我可以在进行调试之前为程序设置一些unix环境变量。我的批次中的电话:

plink.exe prevoax1 -l suttera -pw XXXXX -i /proj/user/dev/suttera/vl/9506/test/vlmi9506ddd.run 20155 dev o m

在unix脚本中,我使用eclipse中的命令行params启动了gdb,这是我在以前的tryals中找到的。 shell命令中的调用如下所示:

gdb -nw -i mi -cd=$LVarPathExec $LVarPathExec/vlmi9506

然后IBM就为AIX提供了gdb 6.0。我在网http://www.perzl.org/aix/index.php?n=Main.Gdb找到了6.8版本。我们的管理员安装了它。

我现在可以单步执行程序并观察变量。我甚至可以直接在console-view中编写gdb-commands。 yabadabadooooooo

希望对其他人也有帮助。不能说,真正的赢家行动是什么。 但每个答案都提出了更多新问题。现在我有3个。

  1. 当我启动调试配置时,我必须在工具栏中单击重启才能真正进入主程序。是否有可能直接进入main而不重新启动?
  2. 在AIX上,我们的程序首先被嵌入式sql预处理。预处理的c源放在另一个目录中。当我单击该行以设置断点时,我收到警告“未解析的断点”,并且在gdb-console中我看到,break被设置为预处理的源,这是错误的。是否可以在正确的源上设置断点?
  3. 我们在AIX上使用CICS。使用xldb-Debugger和CICS的CDCN命令,当我们进入程序时,我们管理调试开始。是否有可能使用gdb-eclipse远程(在plink中)获得它?

答案 1 :(得分:1)

我通常不会在黑暗中对一个我无法真正测试答案的问题进行拍摄,但由于这一个已经坐了一天,我会试一试。看起来似乎是:

http://wiki.eclipse.org/TM_and_RSE_FAQ#How_can_I_do_Remote_Debugging_with_CDT.3F

...即使CDT在创建维基页面后发生了变化,您仍然可以将调试命令更改为:

ssh remotehost gdb

而不是使用使用gdbserver的TM。这可能比TM远程调试稍慢,因为它实际上使用本地gdb,但另一方面,您不必使用NFS或SMB安装源代码以使其可供本地调试器使用(如果你在局域网上无论如何都无关紧要。)

还有一个针对linux的参考TCF实现,你可能有或没有运气重新编译AIX,但如果gdbserver不可用,它允许远程调试:

http://wiki.eclipse.org/DSDP/TM/TCF_FAQ

答案 2 :(得分:0)

还尝试使用windows eclipse-cdt-gdb远程调试aix-appl。 最后因unix / windows路径问题而被阻止。也许我的结果可以帮助你更进一步 - 也许你已经有了它的工作。我对你的评论感兴趣。在eclipse新闻门户网站上问道 - 按照martin oberhuber的回答(再次感谢)尝试了dsp dd(也阻止了路径问题)并在eclipse bugzilla中设置了一个请求。

这里有新闻链接: http://www.eclipse.org/newsportal/article.php?id=406&group=eclipse.dsdp.tm 在这里我的bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=252758

目前我们仍然使用xldb调试localy,但此刻我正在尝试使用ddd-gdb。至少本地gdb正在运行。