从Python调用和控制GDB
我正在运行一个Python图形界面应用程序。我想从这个应用程序中调用和控制GDB,比如加载一个可执行文件、设置断点等等。我发现GDB有一个命令行界面,可以通过发送字符串给GDB进程来使用,但我想用Python的方式来做。有没有一个叫gdb.py
的东西?我看到“archer”分支里有类似“import gdb”的内容,但在Ubuntu的默认Python安装中不起作用。我该从哪里获取这个模块,或者有没有其他方法可以通过Python控制GDB?
2 个回答
9
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 提供了一个更酷的例子。
21
是的,你可以通过Python来控制GDB。关于Python的相关文档可以在这里找到:http://sourceware.org/gdb/current/onlinedocs/gdb/Python.html#Python。
如果你想看看一些脚本的例子,可以参考这个链接:http://tromey.com/blog/?p=548。