2013-07-05 12 views
6

GDB Promptの関数で複数の変数(say 25)を印刷する際に問題が発生しました。GDBで複数の変数を表示していますか?

すべての変数を手動で印刷するのではなく、これを行う便利な方法はありますか?

私の仕事をすることができるスクリプトや簡単な方法がありますか?

+0

可能重複[GDB - 1つのコマンドで複数の変数を印刷](http://stackoverflow.com/questions/1882857/gdb-print-multiple-variables-with-one-command) –

答えて

12

printfコマンドをgdbで使用して複数の値を出力できます。

printf "%d,%d\n", a, b 

将来使用するには、gdb関数を定義するか、gdb-history機能を使用します。そして、あなたはコマンドとしてprint_allを使用することができます

define print_all 
    printf "%d,%d\n", a, b 
end 
document print_all 
    Prints all my variables. 
end 

、作成/以下contenでファイル$HOME/.gdbinitを変更し、GDB-関数を定義する

  1. set history filename ~/.gdb_history 
    set history save 
    

    をし、それがbashの中のような同じctrl+rを使用して取得:

  2. 履歴トリックについては、次の内容のファイル$HOME/.gdbinitを変更/作成します。 実際のgdb-history回答はhereです。

+0

.gdbinitでありますすべてのLinuxディストリビューションに共通? – Jeyaram

+0

@Jeyaram、私は別のLinuxディストリビューションでの経験はありませんが、 '$ HOME/.gdbinit'で選択されていない場合は' -x'オプションを使ってコマンドファイルを指定することができます。例: 'gdb -x /path/.gdbinit/path/binary' – VoidPointer

+0

レジスタを表示できないようです。 –

関連する問題