使用命名管道根据输出向程序发送输入

时间:2014-07-28 18:27:33

标签: python linux bash gdb named-pipes

以下是我需要做的一般示例:

例如,我会通过从程序向GDB发送命令“bt”来启动回溯。然后我会搜索诸如“pardrivr”之类的单词,并使用正则表达式获取与之关联的行号。然后我将“f [line_number_of_pardriver]”输入到GDB中。将重复此过程,直到最终提取出正确的信息。

我想在bash或python中使用命名管道来完成此任务。

有人可以提供一个如何做到的简单示例吗?

1 个答案:

答案 0 :(得分:1)

我的建议不是这样做的。相反,还有两种可支持的方式:

  1. 直接在gdb中用Python编写代码。 Gdb在Python中已经可以扩展几年了。

  2. 使用gdb MI(“机器接口”)方法。有可用于解析这个的库(不确定Python中是否有一个,但我假设如此)。这比解析gdb的命令行输出更好,因为为避免无端破坏而采取了一些措施 - 这是程序与gdb交互的首选方式。