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

Mic*_*ing 14 c++ eclipse aix remote-debugging eclipse-cdt

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

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

是否有人熟悉使用Eclipse CDT远程调试而无需gdbserver?也许使用SSH shell连接到gdb?

小智 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
Run Code Online (Sandbox Code Playgroud)

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

gdb -nw -i mi -cd=$LVarPathExec $LVarPathExec/vlmi9506
Run Code Online (Sandbox Code Playgroud)

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

我现在可以逐步完成程序并观察变量.我甚至可以直接在console-view中编写gdb-commands.yabadabadooooooo

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

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


Nic*_*tin 1

我通常不会在黑暗中对一个我无法真正测试答案的问题进行尝试,但由于这个问题已经存在了一天,我会尝试一下。从看看来:

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

...即使自 wiki 页面创建以来 CDT 发生了变化,您仍然应该能够将调试命令更改为:

ssh 远程主机 gdb

而不是使用使用 gdbserver 的 TM。这可能会比 TM 远程调试稍微慢一些,因为它实际上使用本地 gdb,但另一方面,这样您就不必通过 NFS 或 SMB 挂载源代码来使其可用于本地调试器(并且如果你在局域网上,无论如何,这可能并不重要)。

还有一个针对 Linux 的参考 TCF 实现,您可能会也可能不会为 AIX 重新编译它,但它允许在 gdbserver 不可用时进行远程调试:

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