GDB では、ブレークポイントを設定して特定の変数を監視し、いつアクセスまたは変更されたかを識別できます。この目的のための GDB コマンドとテクニックの内訳は次のとおりです。
ウォッチポイント コマンド:
メモリ位置にウォッチポイントを設定:
rwatch を使用してメモリ位置にウォッチポイントを設定するコマンド:
gdb$ rwatch *0xfeedface
これにより、メモリ アドレス 0xfeedface が読み取られるたびにブレークポイントがトリガーされます。
式のウォッチポイントの制限:
次の点に注意してください。 GDB ウォッチポイントは、次のような式には設定できません。変数:
gdb$ rwatch $ebx+0xec1a04f Expression cannot be implemented with read/access watchpoint.
これを回避するには、式を手動で展開します:
gdb$ print $ebx = 0x135700 gdb$ rwatch *0x135700+0xec1a04f
ハードウェアとソフトウェアのサポート:
ハードウェア ウォッチポイントソフトウェア ウォッチポイントよりも高速なパフォーマンスを提供します。 OS がハードウェア ウォッチポイントをサポートしているかどうかを確認するには、次のコマンドを実行します。
gdb$ show can-use-hw-watchpoints
出力が 1 の場合、ハードウェア ウォッチポイントは使用可能です。
以上がブレークポイントを使用して GDB で変数アクセスとメモリ読み取り/書き込みを監視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。