1

首先,一些背景。remote_host我通过在using上启动进程来运行程序ssh

ssh -T remote_host "cd ~/mydir && ~/myprogram" < input.txt

程序myprogram读取附加到本地文件的标准输入input.txt

现在,我需要在 gdb 下远程调试这个程序。如果没有标准输入重定向,即< input.txt,我可以使用 gdb's 来执行此操作target remote,如下所示(在 gdb 提示符下):

(gdb) target remote | ssh -T remote_host gdbserver - myprogram

但是,在上面的示例中,我不知道如何将myprogram's stdin 附加到input.txt.

有什么可以解决问题的吗?

4

1 回答 1

1

gdbserver不从标准输入读取,因此它调用的程序将可以不受限制地访问标准输入。你应该能够做到这一点:

ssh -T remote_host "cd ~/mydir && gdbserver :1234 ~/myprogram" < input.txt

1234未使用的端口在哪里。然后,

(gdb) target remote remote_host:1234

这样做的一个缺点是gdb-gdbserverTCP 连接不会被加密。

于 2014-01-10T22:39:56.353 回答