如何使用Python创建GDB子进程并根据输出动态发送命令?

时间:2014-07-28 16:48:57

标签: python linux io gdb subprocess

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

例如,我会通过发送命令来启动回溯跟踪" bt"从程序到GDB。然后我会搜索一个像" pardrivr"并使用正则表达式获取与其关联的行号。然后我会输入" f [line_number_of_pardriver]"进入GDB。将重复此过程,直到最终提取出正确的信息。

我想通过创建GDB的子进程来使用Python来实现这一目标。然后我想将命令发送到GDB并从GDB读取输出。我会使用输出根据输出内容动态地向GDB发送更多命令。

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

非常感谢你!

1 个答案:

答案 0 :(得分:0)

使用Pexpect:http://pexpect.readthedocs.org/en/latest/examples.html

更基本的选择是使用subprocess.Popen().communicate()

http://pymotw.com/2/subprocess/#popen2