繁体   English   中英

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

[英]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 附加到您已经在运行的进程中。 pstop找到它的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM