<ブロック引用>
Linux
GDB 7.1 で gdb.execute の出力を受け取る方法はありますか?
いいえ
最善の策は、GDB-7.3 が利用可能になるように手配することです。 GDB は通常 (libc やおそらく libpython 以外の) 共有ライブラリを使用しないため、スクリプトで gdb バイナリをコピーするだけで済みます。これは、あなたが提案した代替案よりもはるかに簡単で保守しやすいソリューションです。
ファイルに書き込み、次にファイルを読み取ることができます。例:
os.system("rm tmp.txt")
gdb.execute("set logging file tmp.txt")
gdb.execute("set logging on")
mainsec=gdb.execute("info proc mappings")
gdb.execute("set logging off")
mainsec = open("tmp.txt").read()
ただし、古いバージョンの gdb.execute ははるかに優れていました。
参考までに(gdb 8.1でテスト済み) to_string
を使用できます パラメータ
https://sourceware.org/gdb/onlinedocs/gdb/Basic-Python.html
gdb.execute (command [, from_tty [, to_string]])
デフォルトでは、コマンドによって生成された出力はすべて GDB の標準出力に送信されます (ロギングがオンになっている場合はログ出力にも送信されます)。 to_string パラメータが True の場合、出力は gdb.execute によって収集され、文字列として返されます。デフォルトは False で、この場合の戻り値は None です。