我通常使用以下方法将 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
关于python - 如何将程序的 STDOUT 重定向到 GDB 调试程序的 STDIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55500271/