如何将程序的STDOUT重定向到GDBdebugged程序的STDIN?

2024-04-24 07:13:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

(gdb) run myprog < input.txt

但是,我该怎么做:

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

不必首先创建输出为python -c '...'的文件?你知道吗


Tags: 文件run命令程序内容inputstdinstdout
1条回答
网友
1楼 · 发布于 2024-04-24 07:13:45

一种方法是将gdb附加到已经运行的进程。用pstop查找其pid。假设是37。那就跑吧

(gdb) attach 37

不过,在很短的运行时间内,这可能对你的案子不起作用。另一种方法是使用fifo。你知道吗

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

相关问题 更多 >