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