目的
このコマンドは、マルチスレッド/マルチプロセスの分散実行に適していない標準GDB watchコマンドを置き換えます。スレッドは、最大4つの監視対象アドレスを持つことができます。ウォッチポイントの定義では、4つのウォッチ スロットのうち、次に使用可能なウォッチ スロットを使用します。このコマンドは、指定のアドレス上で条件が発生するとスレッドが停止するように、ハードウェア デバッグ レジスタを現在のスレッドに直接割り当てます。
これは、スレッドごとに適用されます。ウォッチポイントが設定されたUDFが存在する場合、ウォッチポイントは暗黙的に削除されます。前のUDFも実行したスレッド上でUDFが実行されている場合でも、ウォッチポイントはUDFごとに再確立する必要があります。
構文
watch[/mode] location
- mode
- 監視対象のメモリ アクセスの種類を指定します。
- dはウォッチポイントを削除
- rはメモリの読み取りアクセス
- wはメモリの書き込みアクセス
- xは命令実行アクセス
- location
- 監視対象の位置のアドレスを出す式。
使用上の注意
関数のエントリにブレークポイントが設定されたすべてのUDFにウォッチポイントを適用させることができます。これにより、希望のwatchpointとcontinueが設定されます。
(gdb) break funcname Breakpoint 1 at ... (gdb) command 1 > silent > watch location/w > continue >end (gdb)