GNU/Linux >> Linux の 問題 >  >> Linux

PythonGDB (GDB 7.1) で gdb.execute から出力を取得するには?

<ブロック引用>

GDB 7.1 で gdb.execute の出力を受け取る方法はありますか?

いいえ

最善の策は、GDB-7.3 が利用可能になるように手配することです。 GDB は通常 (libc やおそらく libpython 以外の) 共有ライブラリを使用しないため、スクリプトで gdb バイナリをコピーするだけで済みます。これは、あなたが提案した代替案よりもはるかに簡単で保守しやすいソリューションです。


ファイルに書き込み、次にファイルを読み取ることができます。例:

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

ただし、古いバージョンの gdb.execute ははるかに優れていました。


参考までに(gdb 8.1でテスト済み) to_string を使用できます パラメータ

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

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

デフォルトでは、コマンドによって生成された出力はすべて GDB の標準出力に送信されます (ロギングがオンになっている場合はログ出力にも送信されます)。 to_string パラメータが True の場合、出力は gdb.execute によって収集され、文字列として返されます。デフォルトは False で、この場合の戻り値は None です。


Linux
  1. `ls`が出力をソートしないようにするにはどうすればよいですか?

  2. デスクトップショートカットからShスクリプトを実行する方法は?

  3. CHILD PROCESSから戻り値を取得するには?

  1. ffmpeg出力から継続時間を抽出するには?

  2. Bashの配列から一意の値を取得するにはどうすればよいですか?

  3. 親プロセスから子プロセスを取得する方法

  1. grep から cp に出力をパイプする方法は?

  2. tcpdump:grep可能な出力を取得するには?

  3. bashからネットマスクを取得するには?