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

时间:2017-11-28 19:57:56

标签: gdb

我需要调试以另一个程序的输出为基础的程序。因此,将'feeder'的输出写入文件,并将其输出到'reader'不起作用。

正常运行:

# feeder | ./reader

这不是一个选项:

# feeder > data
# gdb ./reader
(gdb) run < data

1 个答案:

答案 0 :(得分:2)

您可以暂停reader并等待GDB附加,如here所述。

然后运行:

feeder | ./reader

在一个终端中,gdb -p $(pgrep reader)在另一个终端中。

连接gdb后,让reader继续,并正常调试。

<强>更新

现在您已经阐明了约束,另一种方法是使用命名管道:

mknod /tmp/.pipe p
feeder > /tmp/.pipe
gdb reader
(gdb) run < /tmp/.pipe