Jadi apakah ada cara untuk menerima keluaran gdb.execute di GDB 7.1?
Tidak.
Taruhan terbaik Anda adalah mengatur ketersediaan GDB-7.3. Karena GDB biasanya tidak menggunakan pustaka bersama (di luar libc dan mungkin libpython), Anda cukup menyalin biner gdb dengan skrip Anda. Itu akan menjadi solusi yang jauh lebih mudah dan lebih dapat dipertahankan daripada alternatif yang Anda usulkan.
Anda dapat menulis ke file, lalu membaca file tersebut, misalnya:
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()
Versi lama gdb.execute jauh lebih unggul.
FYI sekarang (diuji dengan gdb 8.1) Anda dapat menggunakan to_string
parameter
https://sourceware.org/gdb/onlinedocs/gdb/Basic-Python.html
gdb.execute (command [, from_tty [, to_string]])
Secara default, keluaran apa pun yang dihasilkan oleh perintah dikirim ke keluaran standar GDB (dan ke keluaran log jika pencatatan diaktifkan). Jika parameter to_string adalah True, maka keluaran akan dikumpulkan oleh gdb.execute dan dikembalikan sebagai string. Standarnya adalah Salah, dalam hal ini nilai yang dikembalikan adalah Tidak Ada.