GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mendapatkan output dari gdb.execute di PythonGDB (GDB 7.1)?

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.


Linux
  1. Bagaimana cara mengekstrak waktu durasi dari keluaran ffmpeg?

  2. Bagaimana saya bisa mendapatkan nilai unik dari array di Bash?

  3. Bagaimana cara menjalankan skrip Python dari Java?

  1. Bagaimana cara mendapatkan nama host dari IP (Linux)?

  2. bagaimana cara mendapatkan elemen dari daftar di bash?

  3. Bagaimana cara mendapatkan netmask dari bash?

  1. Bagaimana cara mendapatkan nilai pengembalian dari PROSES ANAK?

  2. Bagaimana saya mendapatkan sed untuk membaca dari input standar?

  3. Bagaimana saya bisa mendapatkan biner dari file .py