Existe-t-il un moyen de recevoir la sortie d'un gdb.execute dans GDB 7.1 ?
Non.
Votre meilleur pari est de faire en sorte que GDB-7.3 soit disponible. Étant donné que GDB n'utilise généralement pas de bibliothèques partagées (au-delà de libc et peut-être de libpython), vous pouvez simplement copier le binaire gdb avec votre script. Ce sera une solution beaucoup plus facile et plus maintenable que l'alternative que vous avez proposée.
Vous pouvez écrire dans un fichier, puis lire le fichier, par exemple :
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()
L'ancienne version de gdb.execute était cependant de loin supérieure.
Pour info maintenant (testé avec gdb 8.1) vous pouvez utiliser le to_string
paramètre
https://sourceware.org/gdb/onlinedocs/gdb/Basic-Python.html
gdb.execute (command [, from_tty [, to_string]])
Par défaut, toute sortie produite par la commande est envoyée à la sortie standard de GDB (et à la sortie du journal si la journalisation est activée). Si le paramètre to_string est True, la sortie sera collectée par gdb.execute et renvoyée sous forme de chaîne. La valeur par défaut est False, auquel cas la valeur de retour est None.