web-dev-qa-db-ja.com

Python)からGDBを呼び出して制御します

Python GUIアプリケーションを実行しています。実行可能ファイルのロード、ブレークポイントの設定など、GDBを呼び出して制御したいと思います。GDBには使用可能なコマンドラインインターフェイスがあることがわかります。文字列をGDBプロセスに送信しますが、Pythonの方法です。gdb.pyはありますか?「archer」ブランチには「importgdb」のようなものがあります。 、しかし、UbuntuのデフォルトのPythonインストールでは機能しません。このモジュールはどこで入手できますか、またはPythonからGDBを制御する他の方法はありますか?

24
Seeker

はい、PythonからGDBを制御できます。 Pythonドキュメントは http://sourceware.org/gdb/current/onlinedocs/gdb/Python.html#Python にあります。

スクリプトの例が必要な場合は、 http://tromey.com/blog/?p=548 をご覧ください。

19
timbo

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