以下是我需要做的一般示例:
例如,我会通过从程序向GDB发送命令“bt”来启动回溯。然后我会搜索诸如“pardrivr”之类的单词,并使用正则表达式获取与之关联的行号。然后我将“f [line_number_of_pardriver]”输入到GDB中。将重复此过程,直到最终提取出正确的信息。
我想在bash或python中使用命名管道来完成此任务。
有人可以提供一个如何做到的简单示例吗?
答案 0 :(得分:1)
我的建议不是这样做的。相反,还有两种可支持的方式:
直接在gdb中用Python编写代码。 Gdb在Python中已经可以扩展几年了。
使用gdb MI(“机器接口”)方法。有可用于解析这个的库(不确定Python中是否有一个,但我假设如此)。这比解析gdb的命令行输出更好,因为为避免无端破坏而采取了一些措施 - 这是程序与gdb交互的首选方式。