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

标签 python linux io gdb subprocess

这是我需要做的一般示例:

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

我想使用Python通过创建GDB的子进程来完成此任务。然后我想向 GDB 发送命令并从 GDB 读取输出。我将使用输出根据输出内容动态向 GDB 发送更多命令。

有人可以提供一个简单的例子来说明如何做到这一点吗?

非常感谢!

最佳答案

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

一个更基本的选项是使用subprocess.Popen().communicate():

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

关于python - 如何使用Python创建GDB子进程并根据输出动态发送命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25000160/

相关文章:

Python QuickBase API 帮助

python - 在 pygame 的类/子类中设置和显示 Sprite 时遇到问题

c++ - 如何将数据写入单独的行中的每个文件?

c - 与计数器和文件 I/O 的交互

c# - 如何从流读取器或流写入器分离流?

python - 保留第一个非零元素,将所有其他元素设置为 0

python - keras "image_dim_ordering"配置不起作用

linux - 如何恢复二进制转储文件?

linux - Bash 中 $() 和 () 的区别

linux - Linux 中的时间变量地址