我需要调试以另一个程序输出为输出的程序。因此,将"馈线"的输出写入文件中,然后将其输送到"读取器"不起作用。
正常运行:
# feeder | ./reader
这不是这里的选择:
# feeder > data
# gdb ./reader
(gdb) run < data
您可以进行reader
暂停并等待GDB附加,如下所述。
然后运行:
feeder | ./reader
在一个终端中,在另一个端子中 gdb -p $(pgrep reader)
。
连接GDB后,让reader
继续并正常调试。
更新:
现在您已经澄清了约束,另一种方法是使用名为管道:
mknod /tmp/.pipe p
feeder > /tmp/.pipe
gdb reader
(gdb) run < /tmp/.pipe