Quindi c'è un modo per ricevere l'output di un gdb.execute in GDB 7.1?
No.
La soluzione migliore è fare in modo che GDB-7.3 sia disponibile. Poiché GDB di solito non utilizza librerie condivise (oltre a libc e forse libpython), puoi semplicemente copiare gdb binary con il tuo script. Sarà una soluzione molto più semplice e gestibile rispetto all'alternativa che hai proposto.
Puoi scrivere su un file, quindi leggere il file, ad esempio:
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()
La vecchia versione di gdb.execute però era di gran lunga superiore.
Cordiali saluti ora (testato con gdb 8.1) puoi usare to_string
parametro
https://sourceware.org/gdb/onlinedocs/gdb/Basic-Python.html
gdb.execute (command [, from_tty [, to_string]])
Per impostazione predefinita, qualsiasi output prodotto dal comando viene inviato all'output standard di GDB (e all'output del log se la registrazione è attivata). Se il parametro to_string è True, l'output verrà raccolto da gdb.execute e restituito come stringa. Il valore predefinito è False, nel qual caso il valore restituito è Nessuno.