rwatch 命令:rwatch 命令设置读观察点,也就是当发生读取变量行为时,程序就会暂停住。
使用方法同 watch 命令相同。
注意, rwatch 命令只对硬件观察点才生效。
2. 下面用一段代码,说明一下 rwatch 命令的使用,代码如下:
- #include
- #include
- #include
-
- int gdata = 0;
-
- void *thread1(void *p_arg)
- {
- while (1)
- {
- gdata *= 2;
- sleep(5);
- }
- }
-
- int main(void)
- {
- pthread_t t1;
-
- pthread_create(&t1, NULL, thread1, "Thread 1");
-
- sleep(1000);
- return 0;
- }
下面开始进入 gdb 调试。设置读观察点 即变量 gdata 。
首先,输入 start 命令,开始运行程序。
其次,输入 n 命令,单步运行程序,直至成功创建线程 thread1。
最后,输入 rwatch gdata 命令,设置读观察点 gdata。

可以看出,使用命令 rwatch gdata 之后,子线程 thread1 每次读一次变量 gdata 的值,程序都会停下来。