我正在使用Microsoft Visual Studio 2010在C ++中调试相当大的项目,从某些角度来看,调试器主要显示
CXX0030: Error: expression cannot be evaluated
而有时
CXX0017: Error: Symbol "" not found
而不是变量值。
IDE调试器声称未评估的所有对象,数据结构,字段,变量实际上都进行了评估,因为我可以进一步调试,并且某些计算会发生在那些"未评估的"之后的价值......
该项目使用Debug
选项x64
构建。
我是IDE和语言的新手,所以我有点迷失。
它可能是什么?一些错误的调试选项?调试软件和IDE内部构建的代码之间是不匹配的(这是不太可能的,但我现在开始相信鬼魂......)。构建属性中有什么东西?它可能是我调试的错误线程(但某些字段确实有评估值...)?
答案 0 :(得分:0)
我在问题中找到的最接近的问题是this issue on MSDN
我执行了以下答案,
关闭PCH使用。这完全避免了这个问题。 但徒劳无功。
修改强>
最后,结果发现.pdb
调试文件和.exe
的版本存在差异,因为它们不是完全相同的版本。我收到Symbols cannot be loaded
错误,在调试时在模块视图中可见。
有两种可能的解决方案:
application_name.pdb
文件添加到调试后的application_name.exe
所在的bin文件夹中,以便调试器可以见到他们application_name.exe
替换为软件(并希望没有任何中断),并将application_name.pdb
文件添加到同一文件夹中。