GDB: смотреть переменную в заданной области

С GDB я могу watch i , ломаться всякий раз, когда i . Проблема в том, что у меня есть несколько функций, использующих имя i , поэтому GDB ломается внутри всех этих функций.

Можно ли прерывать всякий раз, когда i меняю, но только внутри данной функции?

Я думаю, вы смотрите глобальную переменную и, следовательно, останавливаетесь во всех функциях, где эта переменная изменяется, что является логическим и ожидаемым поведением . Если вы хотите разбить только внутри заданной функции всякий раз, когда i меняю, не устанавливайте точку останова для i . Вместо этого установите контрольную точку для желаемой функции. Когда эта точка останова ударяется, теперь установите часы для i чтобы вы точно знали, что следующая точка останова будет поражена, когда i изменят в желаемой функции (игнорируя возможные рекурсии и тому подобное)

Я предположил, что вы не можете просматривать локальную переменную внутри каждой функции с тем же именем, потому что вы не можете установить точку останова на локальную переменную, пока не попадете в эту конкретную функцию.