从Python调用和控制GDB

See*_*ker 24 python gdb

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

tim*_*mbo 19

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

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


Ste*_*off 5

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')
Run Code Online (Sandbox Code Playgroud)

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