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

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

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

分步调试时,看不到str的值,
在watch1 里提示:str CXX0017: 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其值是,你的程序是否运行到这个函数中.
------解决方案--------------------
任何变量都有生命期。