我通常使用以下命令将STDOUT重定向到另一个程序:
python -c 'print("HelloWorld")' | ./myprog
我知道我可以将文件内容作为STDIN提供给GDB中的已调试程序:
(gdb) run myprog < input.txt
但是,我该怎么做:
(gdb) run mypprog < python -c 'print("HelloWorld")'
是否无需首先创建一个输出为python -c '...'
的文件?
答案 0 :(得分:1)
一种方法是将gdb附加到已经在运行的进程中。使用ps
或top
查找其pid。假设是37。然后运行
(gdb) attach 37
尽管运行时间很短,但这可能不适用于您的情况。另一种方法是使用fifo。
mkfifo fifo
python -c 'print("Hello World")' > fifo &
gdb myprog
run < fifo