GDB:观看给定范围内的变量

Ran*_*lue 6 c gdb

使用GDB,我可以watch i在任何i更改时中断。问题是我有多个使用该名称的功能i,因此GDB破坏了所有这些功能。

是否有可能在每次i更改时中断,但仅在给定函数内中断?

Pav*_*ath 6

我猜您正在监视全局变量,因此它在所有修改了此变量的函数中都停止了,这是逻辑上的和预期的行为。如果您只想在i更改时在给定的函数内中断,则不要为设置断点i。而是为所需功能设置一个断点。命中此断点时,现在将手表设置为,i以便您确定i在所需功能中进行修改时将命中下一个断点(忽略可能的递归等)

我猜想您可能不会在每个具有相同名称的函数中查看局部变量,因为您无法在局部变量上设置断点,除非您处于该特定函数的范围之内。