【问题标题】:gdb could not be started - DDD to a remote inferior debuggergdb 无法启动 - DDD 到远程劣质调试器
【发布时间】:2016-12-14 20:46:53
【问题描述】:

我正在尝试将 DDD 附加到远程计算机上的 gdb。我已将 rsh 配置为不需要我的机器和用户名的通行证。

ddd 打开时显示“rtx5:1234: not found”并弹出“GDB 无法启动”。从调用 ddd --host rtx5:2159 --trace --no-exec-window /home/murray/beer-process

#  Running GDB (pid 2826, tty /dev/pts/1)...
#  Current language: C/C++
#  Searching "vsllib/ddd.vsl"...
#  Trying "/home/murray/.ddd/vsllib/ddd.vsl"
#  Trying "/usr/share/ddd-3.3.12/vsllib/ddd.vsl"
#  Searching "vsllib/ddd.vsl"..."/usr/share/ddd-3.3.12/vsllib/ddd.vsl".
<- "sh: line 0: exec: rtx5:2159: not found\n"
#  Running GDB (pid 2826, tty /dev/pts/1)...Exit 127.

ddd 启动的 GDB 的 PID 从跟踪日志中是 4 位的。但是,我可以从 rtx(target) 看到的所有 PID 都是 8 位的。我无法将 gdb 视为一个进程,但跟踪日志表明并非如此。文档是否已过时并且我错误地调用它?我如何测试 ddd 是否正确 rsh-ing?

我已经解决了docs 2.4.1 的注意事项:

  • Beer-process 二进制文件位于目标上我的用户名的主目录中。
  • 检查gdb在/usr/bin/gdb的路径
  • rtx5 没有 xterm,因此包含 --no-exec-window 标志

提前致谢

【问题讨论】:

  • 如果你自己做了一些研究,也请分享一下。如果您尝试先做某事并提出更具体的问题,您的帖子会更受欢迎。

标签: gdb ddd-debugger rsh inetd


【解决方案1】:

TLDR:主机上有防火墙,仅干扰 ddd 的 rsh 连接。我还必须用“rtx5”代替“'rsh rtx5'”。它不会找到我通过它的程序,即使它在远程目标的主目录中。但是,我可以使用 ddd-gui 来查找、加载和调试它。

我可以在没有密码的情况下 rsh 到 rtx5,然后调用 gdb。 我无法执行“rsh rtx5 gdb”并启动 gdb。这是由于rsh。当 rsh 在没有命令的情况下被调用时,它会在 514 之外运行。如果 rsh 在用命令调用时,它会进行通信并尝试移动到不同的端口号。这是我的防火墙阻止它的地方。
在 rsh 连接后,Wireshark 向我展示了从本地到目标:

destination unreachable (host administratively protected) 

ddd 仍然存在主要问题,即我无法加载远程主目录中的二进制文件。这将问题扩展到附加到远程主机上正在运行的进程。在这两种情况下,一旦建立连接,我就可以通过 gui 加载/连接。
此外,我必须在远程主机名前加上“rsh”来调用 ddd。这似乎是错误的。有更多的时候我会更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-29
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 2014-07-19
    相关资源
    最近更新 更多