如何将程序的STDOUT重定向到GDB调试程序的STDIN?

时间:2019-04-03 16:44:20

标签: python c gdb

我通常使用以下命令将STDOUT重定向到另一个程序:

python -c 'print("HelloWorld")' | ./myprog

我知道我可以将文件内容作为STDIN提供给GDB中的已调试程序:

(gdb) run myprog < input.txt

但是,我该怎么做:

(gdb) run mypprog < python -c 'print("HelloWorld")'

是否无需首先创建一个输出为python -c '...'的文件?

1 个答案:

答案 0 :(得分:1)

一种方法是将gdb附加到已经在运行的进程中。使用pstop查找其pid。假设是37。然后运行

(gdb) attach 37

尽管运行时间很短,但这可能不适用于您的情况。另一种方法是使用fifo

mkfifo fifo
python -c 'print("Hello World")' > fifo &
gdb myprog
run < fifo