Şu anda bir Python GDB komut dosyası yazıyorum. Sorun, GDB 7.1 ile uyumlu olması gerektiğidir. Bu yüzden ilk GDB 7.3.1 senaryosunu yazdığı ve gdb komutunun çıktısını almak için (GDB 7.3.1) şu fonksiyonu kullanılır:PythonGDB'de (GDB 7.1) gdb.execute çıktısı nasıl alınır?
myvar = gdb.execute("info target", False, True)
Bu fonksiyonun son parametre Döndürmesi gerektiğidir (; böyle bir komut çalıştırmak neden başka; mükemmel mantıklı) bir dize olarak sonuç)
GDB Version 7.1 isegörünüyor olsa o nedenle son parametre isn't available bu hat (GDB 7.1):
myvar = gdb.execute("info target", False)
, None
değerini döndürür.
Bu komutun çıktısını alma şansınız var mı? Python betiğimin standart çıktısını bir dosyaya yönlendirmeyi denedim, daha sonra bu dosyayı yükledim ama görünüşe göre python betiğimin standart girdisi ve çıktısı overwritten by the gdb environment, bu yüzden gdb.execute komutundan çıktı dosyama yazılmıyor.
Şimdi düşünebildiğim tek şey, komut dosyasını ilk önce gdb'yi çeşitli komutları çalıştıran bir python betiğiyle açan ve sonra da bir dosyaya aktaran bir bash betiğiyle sarmaktır. Daha sonra gdb'yi tekrar açın, ancak dosyayı yükleyen başka bir python betiği ile ayrıştırın ve daha sonra dosyadan gelen girdilere göre diğer komutları çalıştırır. Ama bu gerçekten düşünebileceğim en çirkin çözüm.
GDB 7.1'de bir gdb.execute çıktısını almanın bir yolu var mı?