如何在C ++中修复Visual Studio本地人/手表(调试版本)

时间:2011-08-06 23:57:39

标签: c++ visual-studio

有时VS autos / locals / watch会中断而不是变量/值我只有不同的类型:

CXX0029: Error: not struct pointer  
CXX0033: Error: error in OMF type information   
CXX0072: Error: type information missing or unknown 
CXX0025: Error: operator needs class/struct/union   

重建项目,清理PDB / NCB等并没有解决它。我该怎么办?

3 个答案:

答案 0 :(得分:3)

请查看以下Microsoft支持说明:FIX: CXX0033 Error in OMF Type from Forward Class Declaration

一旦解决了支持说明中引用的PCH问题,我认为您的所有错误都将消失。

答案 1 :(得分:1)

实际上有一个解决方案可以让您继续使用预编译的标头:请查看此more recent KB articledocumentation of the /Yl switch - 这似乎是针对此错误量身定制的。

只需添加到stdafx.cpp(或您自己的自定义/ Yc文件)命令行'/ Ylxxxx',其中xxxx代表lib中的任意函数名称。

我最近遇到的症状与你的相同(在VS2010中),这解决了我。

答案 2 :(得分:0)

您是否尝试调试“发布”版本?如果是这样,许多局部变量将不会作为“可调试”元素存在。您可以通过在程序集级别调试并查看寄存器值(与堆栈值,其中auto / local将在调试版本中)来解决此问题(如果您必须调试版本构建)并在“观看窗口“。

否则,构建Debug构建并调试构建版本。您将获得不满足前提条件的断言,转储到输出窗口的相关/不相关的东西,以及更直接的调试单步执行。

相关问题