我试图让 GDB 在变量更改时打印它的值。
给定一个示例程序,我想在它发生变化时获取x
in的值func
,但是让程序在没有提示的情况下继续:
#include <stdio.h>
#include <stdlib.h>
int func(int x, int y);
int main(void) {
int x = 5;
int y;
y = func(x, 4);
printf("%d\n", x);
printf("%d\n", y);
return EXIT_SUCCESS;
}
int func(int x, int y) {
y *= 2;
x += y;
return x;
}
我尝试过的:
break func
commands
silent
watch x
commands
continue
end
continue
end
虽然这将成功获取x
何时更改的值,但问题是当离开范围时x
,gdb 将停止通知我它正在离开范围x
并且正在删除观察点。有没有办法让 GDB 在自动删除观察点时继续执行而无需用户提示?
我遇到了这个问题:gdb:当局部变量上的观察点超出范围时不要中断 但是它从未收到解决方案。