web-dev-qa-db-ja.com

GDBで変数を監視し、特定の条件を満たす場合にログを記録する方法は?

たとえば、カウンターが値に到達するまで変数の値を監視し、各カウンター値の間に変数値の出力をログに記録できる方法があるかどうか知りたいのですが。

25
kp11

カウンターに監視ポイントを設定します。

(gdb) watch var

そして、そのウォッチポイントを条件付きにします:

(gdb) cond <watchpoint_number> var>=value

ファイルにログを記録する場合:

(gdb) set logging file <filename>
(gdb) set logging on

デフォルトでは、gdbはgdb.txtにログを記録します

32
ninjalj

watchpoints を使用して、gdbに変数の値を監視させ、値が変化したときにプログラムの実行を中断させることができます。実行が停止したら、gdbのコマンドセットを使用して値を検査および出力できます。壊れるたびにこれを自動的に実行するようにgdbをスクリプト化できるかどうかはわかりません。

3
unwind