读书人

单步调试时看不到变量的值,该如何处

发布时间: 2012-04-04 16:38:51 作者: rapoo

单步调试时,看不到变量的值
vc6.0

void test(){
CString str="";
str = "djklfjlkd";
}

分步调试时,看不到str的值,
在watch1 里提示:strCXX0017: Error: symbol "str" not found
这是怎么回事,我试过好多次



[解决办法]
只有一个错误吗?
CString是MFC里的类,你在这里使用应该是未定义类型吧?

C/C++ code
#include <string>#include <iostream>using namespace std;void test() {   string str="";   str="djklfjlkd";}
[解决办法]
你要正好运行到void test()函数里的,一旦出了这个函数Str就是不可见的,因为是局部变量,建议你在这个变量后面在写点语句,然后再打个断点看看,应该是没有问题的
[解决办法]
要注意,只有当前执行到
void test() {
string str="";
str="djklfjlkd";
}
这个函数内部时,才能看到这个str的值,出了这个函数,这个变量都不存在了,你当然就不能看到了.
因为你的str是一个局部变量,有效范围就在这个函数里面.

所以你要确定,watch其值是,你的程序是否运行到这个函数中.
[解决办法]
任何变量都有生命期。

读书人网 >C++

热点推荐