在Visual Studio 2010中进行调试:无法计算cxx0030表达式

时间:2014-10-30 10:41:17

标签: c++ visual-studio-2010 debugging

我正在使用Microsoft Visual Studio 2010在C ++中调试相当大的项目,从某些角度来看,调试器主要显示 CXX0030: Error: expression cannot be evaluated 而有时 CXX0017: Error: Symbol "" not found而不是变量值。

IDE调试器声称未评估的所有对象,数据结构,字段,变量实际上都进行了评估,因为我可以进一步调试,并且某些计算会发生在那些"未评估的"之后的价值......

该项目使用Debug选项x64构建。

我是IDE和语言的新手,所以我有点迷失。

它可能是什么?一些错误的调试选项?调试软件和IDE内部构建的代码之间是不匹配的(这是不太可能的,但我现在开始相信鬼魂......)。构建属性中有什么东西?它可能是我调试的错误线程(但某些字段确实有评估值...)?

1 个答案:

答案 0 :(得分:0)

我在问题中找到的最接近的问题是this issue on MSDN

我执行了以下答案,

  

关闭PCH使用。这完全避免了这个问题。   但徒劳无功。

修改 最后,结果发现.pdb调试文件和.exe的版本存在差异,因为它们不是完全相同的版本。我收到Symbols cannot be loaded错误,在调试时在模块视图中可见。

有两种可能的解决方案:

  1. 完全平衡已调试软件和已检出代码的修订版本,并将构建中生成的application_name.pdb文件添加到调试后的application_name.exe所在的bin文件夹中,以便调试器可以见到他们
  2. 将构建中的application_name.exe替换为软件(并希望没有任何中断),并将application_name.pdb文件添加到同一文件夹中。