![](/img/trans.png)
[英]How to 'catch' stdin, stdout, stderr of a program in Python?
[英]How to redirect STDOUT of a program to STDIN of a GDB-debugged program?
我通常使用以下命令将 STDOUT 重定向到另一个程序:
python -c 'print("HelloWorld")' | ./myprog
我知道我可以为 GDB 中的调试程序提供文件内容作为 STDIN:
(gdb) run myprog < input.txt
但是,我该怎么做:
(gdb) run mypprog < python -c 'print("HelloWorld")'
不必先用python -c '...'
的输出创建一个文件?
一种方法是将 gdb 附加到您已经在运行的进程中。 用ps
或top
找到它的pid。 假设它是37.然后运行
(gdb) attach 37
不过,这可能不适用于您的运行时间很短的情况。 另一种方法是使用fifo 。
mkfifo fifo
python -c 'print("Hello World")' > fifo &
gdb myprog
run < fifo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.