使用GDB进行调试,该程序从另一个程序中获取输入



我需要调试以另一个程序输出为输出的程序。因此,将"馈线"的输出写入文件中,然后将其输送到"读取器"不起作用。

正常运行:

# 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

相关内容

最新更新