在以mfc建立的工程中,需要建立一个链表来保存一些数据。但是在创建结构体,以及对其赋值的过程中,发现对结构体变量不能观察,添加到监视器中的变量也出现变量名不存在的错误。
首先,在文件的开始定义一个结构体
struct drop_link
{
int num;
int x;
int y;
struct drop_link *next_node;
};
然后在一个按钮函数中编写以下代码:
int m=9;
struct drop_link drop;
drop.num=1;
drop.x=2;
drop.y=3;
drop.next_node=NULL;
这时对第一行代码添加断点,编译调试时。断点变为灰色直接跳到程序的结尾处。对其中的变量添加到监视列表中,提示没有找到变量的符号。
然后我重新建立一个简单工程,把以上代码加入工程中;发现可以进行单步调试与观察变量;
我对此表示无语;
最后我在原工程中继续添加以下代码:
CString str;
str.format(_("x=%d,y=%d,m=%d"),drop.x,drop.y,m);
MessageBox(str);
这时我再编译调试,发现程序直接停到CString str这条语句,然后我单步调试,发现新增加的语句能调试与添加到监视器中正常观察。但是之前的变量还是无法观察;
观察到的str="x=2,y=3,m=9";可以看到drop.x,drop.y 以及m的值都存在,就是不能观察。
这个问题导致的原因是什么???还不知道!