web-dev-qa-db-ja.com

GDBの1つのコマンドで複数の変数を出力します

非常に簡単なコマンドを実行したい

print var1, var2, var3, var4 

gdbで、変数の値を時々調べます。

表示が乱雑になるので使いたくありません。

どうすればこれを行うことができますか?今私にできることは次のとおりです。

p var1  
p var2  
p var3  
p var4  
41
Rao Garimella

あなたは単にこれを行うことができます

print {var1,var2,var3,var4}

これでうまくいきます。

41
vikasmk

Printfコマンドを使用します。少し面倒ですが、フォーマットを適切に制御できます。コマンドラインから:

(gdb) help printf
printf "printf format string", arg1, arg2, arg3, ..., argn
This is useful for formatted output in user-defined commands.

フォーマット文字列はCの場合と同様です(通常サイズのintの場合は%d、nullで終了する文字列の場合は%sなど)。

35
TGV

マクロを使用する:

たとえば、次のブレークポイントに進んで印刷するには

(gdb) define prm 

prmを定義するためのコマンドを入力します。 endだけを言う行で終わります。

>continue
>print var1
>print var2
>print var3
>end

(gdb) prm
$5 = 0
$6 = 10
$7 = -1
16
Manas Jagadev

より簡単な解決策があるかもしれませんが、GDBマクロを使用して何かをまとめることができるかもしれません: http://www.ibm.com/developerworks/aix/library/au-gdb.html

2
Edward Loper