vs2010无法查看自定义的普通变量(CXX0017:错误:没有找到符号)
2015-10-23 09:51
330 查看
在使用VS2010调试程序时,可以通过”局部变量“窗口查看程序中局部变量的值,但是在一个方法中的自定义的普通变量怎么查看值呢?可以在监视窗口中添加你想跟踪监视的值的名称,但是今天遇到了一个问题,就是将我想跟踪的变量名(如循环中的i)添加到”监视1“窗口时,会提示”CXX0017:错误:没有找到符号”。在http://blog.csdn.net/xunixing/article/details/7892898 找到了答案,用了第一种方法就搞定了。这样在调试时,将鼠标放到你想查看的变量上面,就会显示它的值。感谢。
编程环境: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.
[cpp] view plaincopyint _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;}情况 2. 解决方案 将 k 作为局部变量使用,即for(int k=0;k<2;k++)[cpp] view plaincopy#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;}以上只是已测试的情况,如果类似问题,可参考进行调试
相关文章推荐
- 通过GeoIP获取ip所属地 (国家,城市,时区,邮编,经纬度等)
- C++ 11 强制类型转换 北京大学程序实习公开课
- HDU 2612 Find a way题解
- 小机更改系统时间
- 资深工程师教你如何在window下快速创建上百个G的打文件!
- AndroidVideoPlayer在线播放视频
- iOS上传错误 ERROR ITMS-90049
- interface Java 中接口
- Java web.xml session-config 属性配置
- fixed定位与absolute定位
- SQL Server 使用全文索引进行页面搜索
- 入学测试题详解
- DOM树
- ZigBee协议栈常用术语汇总
- 关于WIN8.1系统第三方软件找不到映射的网络盘的盘符的解决办法
- 运算符优先级
- 编译opencore-amr for iOS8并支持bitcode
- Mondrian下XMLA方式访问数据页面报错解决方案
- async callback z
- 在自己的网站上实现QQ授权登录