В момента пиша Python GDB скрипт. Проблемът е, че трябва да е съвместим с GDB 7.1. Така че първо написах скрипта за GDB 7.3.1 и използвах следната функция, за да получа резултата от gdb команда (GDB 7.3.1):
myvar = gdb.execute("info target", False, True)
Последният параметър на тази функция е, че тя трябва да върне резултата като низ (което е напълно логично; защо иначе бих изпълнил такава команда ;) )
Във версия 7.1 на GDB обаче изглежда, че последният параметър не е t наличен следователно този ред (GDB 7.1):
myvar = gdb.execute("info target", False)
връща None
.
Има ли някакъв шанс да се извлече резултатът от тази команда? Вече се опитах да пренасоча стандартния изход на моя python скрипт във файл, след което заредих този файл, но очевидно стандартният вход и изход на моя python скрипт е презаписан от gdb средата, така че изходът от командата gdb.execute не се записва в моя файл.
Единственото нещо, за което мога да се сетя сега, е да обвия скрипта си с bash скрипт, който първо отваря gdb със скрипт на python, който изпълнява различни команди и след това превежда това във файл. След това отворете отново gdb, но с друг скрипт на Python, който зарежда файла, анализира го и след това изпълнява други команди въз основа на входа от файла и т.н. Но това наистина е най-грозното решение, за което мога да се сетя.
И така, има ли начин да получите изхода на gdb.execute в GDB 7.1?