GDBを使用すると、変更がwatch i
発生するたびに中断できi
ます。問題は、名前を使用する複数の関数があるi
ため、GDBがそれらすべての関数の内部に侵入することです。
変更されるたびに中断することは可能i
ですか?ただし、特定の関数内でのみ可能ですか?
あなたはグローバル変数を見ていると思います。したがって、この変数が変更されたすべての関数で停止します。これは論理的で予想される動作です。変更するたびに特定の関数内でのみブレークしたい場合はi
、のブレークポイントを設定しないでi
ください。代わりに、目的の関数にブレークポイントを設定します。このブレークポイントにヒットしたら、目的の関数で変更されたときに次のブレークポイントにヒットすることが確実になるように、ウォッチを設定します(可能な再帰などを無視します)i
i
特定の関数のスコープに入るまでローカル変数にブレークポイントを設定できないため、同じ名前のすべての関数内のローカル変数を監視していない可能性があると思います。