Я запускаю приложение с графическим интерфейсом пользователя Python. Я хочу вызывать GDB и управлять им из него, например, загружать исполняемый файл, устанавливать точки останова и т. Д. Я вижу, что GDB имеет интерфейс командной строки, который можно использовать, отправляя строки в процесс GDB, но я хочу сделать это способом Python . Есть ли gdb.py? Я вижу, что в ветке «лучник» есть что-то вроде «import gdb», но это не работает в стандартной установке Python для Ubuntu. Где мне взять этот модуль или есть какой-либо другой способ управления GDB из Python?

27
Seeker 14 Авг 2010 в 14:15

2 ответа

Лучший ответ

Да, вы можете управлять GDB из Python. Документация Python находится по адресу http://sourceware.org/gdb/current/. onlinesocs / gdb / Python.html # Python.

Если вам нужен пример сценария, взгляните на http://tromey.com/blog/? p = 548

20
timbo 16 Авг 2010 в 11:01

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 представляет собой гораздо более интересный пример.

5
Steven Eckhoff 6 Июл 2017 в 22:41