gpt4 book ai didi

ssh - 通过 ssh 使用 gdbserver 进行远程调试

转载 作者:行者123 更新时间:2023-12-04 18:40:42 25 4
gpt4 key购买 nike

我想从我的主机箱(我在主机上构建代码)调试在远程箱上运行的进程。
两者都有linux类型的操作系统。

我似乎只能通过 ssh 从主机盒与远程盒通信(我使用 telnet 进行了测试)。

我已按照以下步骤进行设置:

在遥控盒上:

  • 停止防火墙服务:

    service firewall_service stop

  • 将进程附加到 gdbserver

    --attach :remote_port process_id


  • 在主机框上:
  • 通过 ssh 设置端口转发

    sudo ssh remote_username@remote_ip -L host_port:localhost:remote_port -f sleep 60m

  • 设置 gdb 以附加到远程进程:

    gdb file.debug

    (gdb) target remote remote_ip:remote_port


  • 当我尝试通过在主机盒上运行“target remote remote_ip:remote_port”来启动主机上的调试时,出现“连接超时”错误。

    你们能看到我做错了什么吗,有什么要检查的,或者是通过 ssh 远程调试的替代方法,我将不胜感激。
    谢谢

    最佳答案

    这个命令:

    sudo ssh remote_username@remote_ip -L host_port:localhost:remote_port ...

    将本地 host_port 转发到 remote_ip 的 localhost 上的 remote_port。仅当您不能直接连接到 remote_ip:remote_port 时(例如,如果该端口被防火墙阻止),这才有用。

    这个命令:
    (gdb) target remote remote_ip:remote_port

    要求 GDB 连接到 remote_ip 上的 remote_port。但是你说只能通过ssh访问remote_ip,所以GDB超时也就不足为奇了。

    你想要什么:
    ssh remote_username@remote_ip -L host_port:localhost:remote_port ...
    (gdb) target remote :host_port

    换句话说,您连接到本地 host_port,然后 ssh 将该本地连接转发到 remote_ip:remote_port,gdbserver 正在那里监听它。

    关于ssh - 通过 ssh 使用 gdbserver 进行远程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061624/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com