从Python调用和控制GDB

时间:2010-08-14 10:15:45

标签: python gdb

我正在运行Python GUI应用程序。我想从中调用和控制GDB,比如加载可执行文件,设置断点等。我看到GDB有一个命令行界面,可以通过向GDB进程发送字符串来使用,但是我想用Python的方式来做。有gdb.py吗?我看到“archer”分支有类似“import gdb”的东西,但它在Ubuntu的默认Python安装中不起作用。我从哪里获得这个模块,还是有其他方法可以从Python控制GDB?

2 个答案:

答案 0 :(得分:17)

是的,您可以从Python控制GDB。 Python文档位于http://sourceware.org/gdb/current/onlinedocs/gdb/Python.html#Python

如果您想要一些脚本示例,请查看http://tromey.com/blog/?p=548

答案 1 :(得分:4)

pygdbmi就是你想要的。

有了它,我可以使用以下方法从Python重置嵌入式目标:

from pygdbmi.gdbcontroller import GdbController
if __name__ == '__main__':
    gdbmi = GdbController()
    response = gdbmi.write('b main')
    response = gdbmi.write('target remote localhost:2331')
    response = gdbmi.write('mon reset 0')
    response = gdbmi.write('c')

gdbgui提供了一个更酷的例子。