【发布时间】:2015-10-21 15:28:40
【问题描述】:
我了解 GDB 中的 awatch 命令在读/写表达式时会中断。但是,为什么当我将 awatch 命令设置为结构指针的地址时,它只停止了一次。下面是我的 GDB 和代码 sn-p 的屏幕截图。请指教。谢谢。
测试.c
College_Record *college = NULL;
college = malloc(sizeof(College_Record));
printf("college %p\n", college);
free(college);
printf("college %p\n", college);
college = NULL;
printf("college %p\n", college);
printf("***************************\n");
printf("\tDONE OKAY\n");
printf("***************************\n");
return 0;
测试.h
typedef struct {
int college_id;
char school[20];
} College_Record;
【问题讨论】:
-
你已经取消了指针,所以可能是 0x602010。或者,awatch -l 0x602010。最简单的方法可能是 awatch -l *college
-
awatch -l *college 说“表达式中有语法错误,靠近
{...} *) 0x0000000000602010'." Also, awatch 0x602010 or awatch -l 0x602010 says "Cannot watch constant value0x602010'。”