GDB:在给定范围内观察变量

有了GDB,我可以watch i ,每当i改变就会打破。 问题是我有多个使用名称i函数,因此GDB会破坏所有这些函数。

是否有可能在i改变时中断,但只能在给定的函数内部?

我猜你正在观察一个全局变量 ,因此它会在修改了这个变量的所有函数中停止, 这是逻辑和预期的行为 。 如果你想在i改变时只在给定函数内部中断,不要为i设置断点。 而是为所需的function设置断点。 当这个断点被击中时, 现在设置i的监视,以便你确定在i想要的函数中修改i时将会命中下一个断点(忽略可能的递归等)

我猜你可能没有在每个具有相同名称的函数中查看局部变量,因为在属于该特定函数的范围之前,不能在局部变量上设置断点。