一、设置读观察点
1.1 设置读观察点测试代码
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
int a = 0;
void *thread1_func(void *p_arg) {
while (1) {
printf("%d\n", a);
sleep(10);
}
}
int main (int argc, char *argv[]) {
pthread_t t1;
pthread_create(&t1, NULL, thread1_func, "thread 1");
sleep(1000);
return 0;
}
1.2 测试过程
使用
rwatch 变量
命令(缩写rw)设置读观察点,意思是当发生读取变量的行为时,程序就会暂停
二、设置读写观察点
2.1 设置读写观察点测试代码
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
int a = 0;
void *thread1_func(void *p_arg) {
while (1) {
a++;
sleep(10);
}
}
void *thread2_func(void *p_arg) {
while (1) {
printf("%d\n", a);
sleep(10);
}
}
int main (int argc, char *argv[]) {
pthread_t t1, t2;
pthread_create(&t1, NULL, thread1_func, "thread 1");
pthread_create(&t2, NULL, thread2_func, "thread 2");
sleep(1000);
return 0;
}
2.2 测试过程
使用命令
awatch 变量
来设置读写观察点,意思是当发生读取或改变变量值的行为时,程序就会暂停