如何自动打印刚刚更新的变量的值

时间:2016-09-11 01:06:19

标签: gdb

我知道这可能是个梦想,只需把它放在这里。

所以这是代码:

int f()
{
  int i = 0;
  int j = 0;

  for (; i < 10 && j < 100; ++i, j = i * 2) {
    i = f2();
  }
}

所以当谈到函数f()时,我可以运行&#34; disp i j&#34;然后在每一行单步结束后,打印出i和j的值。它工作正常。

但是有没有全局设置或某些技巧,所以我不需要输入&#34;显示&#34;命令,所有局部变量都会自动打印 AND 只有在更新其值时才会打印它们。

另一个词,在i = f2()行,j的值不会打印。

1 个答案:

答案 0 :(得分:1)

您可以在ij上设置关注。喜欢这个

(gdb) watch i

只要i的值发生变化

,它就会自动打印i的值

您还可以使用if<condition>根据某些条件打印值。喜欢这个

(gdb) watch i if j==4

对我而言,打印j的值没有问题 i = f2();行。