GNU/Linux >> Znalost Linux >  >> Linux

Jak získat výstup z gdb.execute v PythonGDB (GDB 7.1)?

Existuje tedy způsob, jak získat výstup souboru gdb.execute v GDB 7.1?

Ne.

Nejlepším řešením je zajistit dostupnost GDB-7.3. Protože GDB obvykle nepoužívá sdílené knihovny (mimo knihovny libc a možná libpython), můžete pomocí skriptu zkopírovat binární soubor gdb. To bude mnohem jednodušší a udržitelnější řešení než alternativa, kterou jste navrhli.


Můžete zapisovat do souboru a poté soubor číst, například:

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()

Stará verze gdb.execute však byla mnohem lepší.


Pro informaci (testováno s gdb 8.1) můžete použít to_string parametr

https://sourceware.org/gdb/onlinedocs/gdb/Basic-Python.html

gdb.execute (command [, from_tty [, to_string]])

Ve výchozím nastavení je jakýkoli výstup vytvořený příkazem odeslán na standardní výstup GDB (a do výstupu protokolu, pokud je protokolování zapnuto). Pokud je parametr to_string True, výstup bude shromážděn gdb.execute a vrácen jako řetězec. Výchozí hodnota je False, v takovém případě je návratová hodnota None.


Linux
  1. Jak získat návratovou hodnotu z CHILD PROCESS?

  2. Jak se dostanu ke čtení ze standardního vstupu?

  3. Jak spustit Python skript z Javy?

  1. jak získat prvky ze seznamu v bash?

  2. jak dostat sha1sum na binární výstup?

  3. Jak získám svou IP adresu z příkazového řádku?

  1. Jak extrahovat dobu trvání z výstupu ffmpeg?

  2. Jak mohu získat binární soubor ze souboru .py

  3. Jak získat uživatelské jméno z uid