编程环境:Visual Studio 2010
首先确定是在 Debug 配置状态。
初始解决方案如下:
错误现象:CXX0017: Error: symbol this not found
方法 1:
将编译优化选项设置为"/Od"就可以了。
工程右键 -> Properties -> Configuration Properites -> C/C++ -> Optimization -> Optimization: Disabled(/Od)
注:如果解决,程序可能存在逻辑错误
方法 2:
将VS生成的工程文件全部删除,(Debug目录下的pdb文件),然后全部重新生成
3. 如果未解决,可能是 Visual Studio 2010 自身bug问题。见 MSDN bug report
https://connect.microsoft.com/VisualStudio/feedback/details/613569/cannot-inspect-local-variables-while-debugging-in-vs2010-cxx0017-symbol-not-found-error#details
情况 1.
情况 2. 解决方案 将 k 作为局部变量使用,即for(int k=0;k<2;k++)
- int _tmain(int argc, _TCHAR* argv[])
- {
- float f = 123.0; //声明并初始化
- if(false)
- {
- int str1; //if中声明新变量。关键!去掉此处可以解决问题,所以可在 if 外声明
- }
- else
- {
- //else中声明的变量在调试时,出问题
- int str2;
- int a = 123;
- a++;
- }
- return 0;
- }
以上只是已测试的情况,如果类似问题,可参考进行调试
- #include <stdio.h>
- int main()
- {
- int arr[5];
- int k; //循环变量,非局部
- float f=123;
- for(k=0;k<2;k++)
- {
- arr[k] = 2;
- int t = 5;
- printf("%d\n",t);
- }
- int i = 2;
- if(i > 0) //if从句内出现的 新变量,也会出现问题
- {
- int joke;
- printf("waht\n");
- }
- return 0;
- }